pax_global_header00006660000000000000000000000064147663043400014521gustar00rootroot0000000000000052 comment=4f6f97fd9e4cb958ef7dfb01b290e0bb83aba97a fog-openstack-1.1.5/000077500000000000000000000000001476630434000142655ustar00rootroot00000000000000fog-openstack-1.1.5/.github/000077500000000000000000000000001476630434000156255ustar00rootroot00000000000000fog-openstack-1.1.5/.github/FUNDING.yml000066400000000000000000000000601476630434000174360ustar00rootroot00000000000000github: geemus tidelift: rubygems/fog-openstack fog-openstack-1.1.5/.github/dependabot.yml000066400000000000000000000003211476630434000204510ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: "bundler" directory: "/" schedule: interval: "weekly" - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" fog-openstack-1.1.5/.github/workflows/000077500000000000000000000000001476630434000176625ustar00rootroot00000000000000fog-openstack-1.1.5/.github/workflows/ci.yml000066400000000000000000000003701476630434000210000ustar00rootroot00000000000000name: CI on: push: branches: [ master ] pull_request: branches: [ master ] schedule: - cron: '0 0 * * 1' # At 00:00 on Monday. permissions: contents: read jobs: Shared: uses: fog/.github/.github/workflows/ci.yml@v1.5.0 fog-openstack-1.1.5/.github/workflows/linting.yml000066400000000000000000000007161476630434000220550ustar00rootroot00000000000000# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. name: Linting on: [push] jobs: rubocop: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: 3.0 - run: bundle install - name: rubocop runs run: rubocop fog-openstack-1.1.5/.gitignore000066400000000000000000000002401476630434000162510ustar00rootroot00000000000000/.bundle/ /.yardoc /Gemfile.lock /_yardoc/ /coverage/ /doc/ /pkg/ /spec/reports/ /tmp/ gemfiles/Gemfile-1.9.lock .DS_Store .idea/ vendor/bundle test/.lorem.txt fog-openstack-1.1.5/.hound.yml000066400000000000000000000000421476630434000161770ustar00rootroot00000000000000ruby: config_file: .rubocop.yml fog-openstack-1.1.5/.rubocop.yml000066400000000000000000000045531476630434000165460ustar00rootroot00000000000000# Opt-in new cops AllCops: NewCops: enable # # Overrides # Layout/HashAlignment: EnforcedHashRocketStyle: table EnforcedColonStyle: table Layout/LineLength: Max: 120 Severity: refactor Layout/SpaceInsideHashLiteralBraces: EnforcedStyle: no_space Lint/Debugger: Enabled: true Metrics/AbcSize: Severity: refactor # Exclude test methods from BlockLength. Metrics/BlockLength: IgnoredMethods: - after - before - context - describe - it - model_tests - namespace - draw Metrics/BlockNesting: Severity: refactor Metrics/ClassLength: Max: 150 Severity: refactor Metrics/CyclomaticComplexity: Severity: refactor Metrics/MethodLength: Max: 25 Severity: refactor Metrics/ParameterLists: Severity: refactor Metrics/PerceivedComplexity: Severity: refactor Style/ClassCheck: EnforcedStyle: kind_of? Style/CollectionMethods: PreferredMethods: find: detect find_all: select map: collect reduce: inject Style/FormatString: EnforcedStyle: percent Style/HashSyntax: EnforcedStyle: hash_rockets Style/RedundantReturn: AllowMultipleReturnValues: true Style/RegexpLiteral: EnforcedStyle: slashes AllowInnerSlashes: true Style/SignalException: EnforcedStyle: only_raise Style/SingleLineMethods: AllowIfMethodIsEmpty: false Style/TrivialAccessors: AllowPredicates: true # # Enabled/Disabled # Layout/DefEndAlignment: AutoCorrect: true Layout/EndAlignment: AutoCorrect: true Layout/ExtraSpacing: AutoCorrect: false # https://github.com/bbatsov/rubocop/issues/2280 <= Now closed, we should remove this Layout/SpaceBeforeFirstArg: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/Documentation: Enabled: false Style/Encoding: Enabled: false Style/GuardClause: Enabled: false Style/IfUnlessModifier: Enabled: false Style/NumericLiterals: AutoCorrect: false MinDigits: 7 Style/ParallelAssignment: Enabled: false Style/PerlBackrefs: Enabled: false Style/RescueModifier: AutoCorrect: false Style/SingleLineBlockParams: Enabled: false Style/SpecialGlobalVars: AutoCorrect: false Style/FrozenStringLiteralComment: Enabled: false Style/StringLiterals: Enabled: false Style/StringLiteralsInInterpolation: Enabled: false Style/TrailingCommaInArrayLiteral: Enabled: false Style/TrailingCommaInHashLiteral: Enabled: false Style/WhileUntilModifier: Enabled: false Style/WordArray: AutoCorrect: false fog-openstack-1.1.5/.ruby-gemset000066400000000000000000000000161476630434000165260ustar00rootroot00000000000000fog-openstack fog-openstack-1.1.5/.travis.yml000066400000000000000000000011651476630434000164010ustar00rootroot00000000000000language: ruby sudo: false before_install: - gem install bundler --version '~> 1' script: - bundle exec rake test TESTOPTS="--verbose" - bundle exec rake spec env: - JRUBY_OPTS=--debug matrix: fast_finish: true include: - rvm: 2.3.8 gemfile: Gemfile - rvm: 2.4.5 gemfile: Gemfile - rvm: 2.5.3 gemfile: Gemfile - rvm: 2.6.0 gemfile: Gemfile - rvm: jruby-head gemfile: Gemfile allow_failures: - rvm: jruby-head notifications: webhooks: urls: - https://webhooks.gitter.im/e/af95aadff4470a9732b9 on_success: change on_failure: always on_start: never email: false fog-openstack-1.1.5/.zuul.yaml000066400000000000000000000013221476630434000162240ustar00rootroot00000000000000- project: check: jobs: - fog-openstack-unittest-test - fog-openstack-unittest-spec - job: name: fog-openstack-unittest-test parent: init-test description: | fog-openstack unittest test tests run: playbooks/fog-openstack-unittest-test/run.yaml vars: rvm: 2.3.8 2.4.5 2.5.3 2.6.0 jruby-head nodeset: ubuntu-xenial - job: name: fog-openstack-unittest-spec parent: init-test description: | fog-openstack unittest spec tests run: playbooks/fog-openstack-unittest-spec/run.yaml vars: rvm: 2.3.8 2.4.5 2.5.3 2.6.0 jruby-head nodeset: ubuntu-xenial fog-openstack-1.1.5/CHANGELOG.md000066400000000000000000000035061476630434000161020ustar00rootroot00000000000000# 1.1.5 2025/03/18 * add initial support for application credentials # 1.1.4 2025/02/05 * fix DSL REST API v2 docs * update to latest fog/.github * fix namespace for OpenStack Orchestration utils # 1.1.3 2024/06/12 * add support for application credentials to storage # 1.1.2 2024/06/12 * erroroneous (thought things had been merged that weren't yet) # 1.1.1 2024/05/14 * delete newlines in base64 encoding * misc repo maintenance * add support for authentication via application credentials ... # 1.10.1 2013/04/04 ## Storage * Added storage (Swift) example to set account quotas: https://github.com/fog/fog/blob/master/lib/fog/openstack/examples/storage/set-account-quota.rb * Added account impersonation to the storage service Now it's possible to use an admin account with a reseller role to impersonate other accounts and set account metadata headers. See the account quotas example included in this release ## Network * create_network request updated Implements provider extensions when creating networks. See http://docs.openstack.org/trunk/openstack-network/admin/content/provider_attributes.html * Network Router support (Quantum) Added router model/collection and related requests. * New network service example See https://github.com/fog/fog/blob/master/lib/fog/openstack/examples/network/network_subnets_routers.rb * :openstack_endpoint_type parameter was added to the network service ## Image * Added basic image service example (Glance) Download CirrOS 0.3.0 image from launchpad (~6.5MB) to /tmp and upload it to Glance. See https://github.com/fog/fog/blob/master/lib/fog/openstack/examples/image/upload-test-image.rb * Check for glance version (fog only supports v1) ## Compute * create_server and the Server model where updated to allow booting a VM with NICs (net_id, port_id, fixed_ip). fog-openstack-1.1.5/CODE_OF_CONDUCT.md000066400000000000000000000045311476630434000170670ustar00rootroot00000000000000# Contributor Code of Conduct As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery * Personal attacks * Trolling or insulting/derogatory comments * Public or private harassment * Publishing other's private information, such as physical or electronic addresses, without explicit permission * Other unethical or unprofessional conduct Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer at matt.darby@rackspace.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.3.0, available at [http://contributor-covenant.org/version/1/3/0/][version] [homepage]: http://contributor-covenant.org [version]: http://contributor-covenant.org/version/1/3/0/ fog-openstack-1.1.5/CONTRIBUTING.md000066400000000000000000000015651476630434000165250ustar00rootroot00000000000000## Getting Involved New contributors are always welcome, when it doubt please ask questions. We strive to be an open and welcoming community. Please be nice to one another. ### Coding * Pick a task: * Offer feedback on open [pull requests](https://github.com/fog/fog-openstack/pulls). * Review open [issues](https://github.com/fog/fog-openstack/issues) for things to help on. * [Create an issue](https://github.com/fog/fog-openstack/issues/new) to start a discussion on additions or features. * Fork the project, add your changes and tests to cover them in a topic branch. * Commit your changes and rebase against `fog/fog-openstack` to ensure everything is up to date. * [Submit a pull request](https://github.com/fog/fog-openstack/compare/). ### Non-Coding * Offer feedback on open [issues](https://github.com/fog/fog-openstack/issues). * Organize or volunteer at events. fog-openstack-1.1.5/Gemfile000066400000000000000000000001421476630434000155550ustar00rootroot00000000000000source 'https://rubygems.org' # Specify your gem's dependencies in fog-openstack.gemspec gemspec fog-openstack-1.1.5/LICENSE.md000066400000000000000000000022031476630434000156660ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2014-2015 [CONTRIBUTORS.md](https://github.com/fog/fog-rackspace/blob/master/CONTRIBUTORS.md) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. fog-openstack-1.1.5/README.md000066400000000000000000000422721476630434000155530ustar00rootroot00000000000000# Fog::OpenStack [![Gem Version](https://badge.fury.io/rb/fog-openstack.svg)](http://badge.fury.io/rb/fog-openstack) [![Build Status](https://travis-ci.org/fog/fog-openstack.svg?branch=master)](https://travis-ci.org/fog/fog-openstack) [![Dependency Status](https://gemnasium.com/fog/fog-openstack.svg)](https://gemnasium.com/fog/fog-openstack) [![Coverage Status](https://coveralls.io/repos/github/fog/fog-openstack/badge.svg?branch=master)](https://coveralls.io/github/fog/fog-openstack?branch=master) [![Code Climate](https://codeclimate.com/github/fog/fog-openstack.svg)](https://codeclimate.com/github/fog/fog-openstack) [![Join the chat at https://gitter.im/fog/fog-openstack](https://badges.gitter.im/fog/fog-openstack.svg)](https://gitter.im/fog/fog-openstack?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) This is the plugin Gem to talk to [OpenStack](http://openstack.org) clouds via fog. The main maintainers for the OpenStack sections are @dhague, @Ladas, @seanhandley, @mdarby and @jjasghar. Please send CC them on pull requests. ## Supported OpenStack APIs See the list of [supported OpenStack projects](supported.md). ## Installation Add this line to your application's Gemfile: ```ruby gem 'fog-openstack' ``` And then execute: $ bundle Or install it yourself as: $ gem install fog-openstack ## Usage ### Initial Setup Require the gem: ```ruby require "fog/openstack" ``` Checklist: * Before you can do anything with an OpenStack cloud, you need to authenticate yourself with the identity service, "Keystone". * All following examples assume that `@connection_params` is a hash of valid connection information for an OpenStack cloud. * The `:openstack_username` and `:openstack_api_key` keys must map to a valid user/password combination in Keystone. * If you don't know what domain your user belongs to, chances are it's the `default` domain. By default, all users are a member of the `default` domain unless otherwise specified. * Keystone endpoints are version less. Version 3 is the default as v2.0 is deprecated. Meanwhile Keystone V3 still supports v2.0 for backward compatibility. Therefore passing a tenant instead of a project (along with a domain) makes Keystone provide v2.0 token. Connection parameters: ```ruby @connection_params = { openstack_auth_url: "http://devstack.test:5000", openstack_username: "admin", openstack_api_key: "password", openstack_project_name: "admin", openstack_domain_id: "default" } ``` If you're using Keystone V2, you don't need to supply domain details but ensure to either provide a tenant name (`openstack_tenant`) or a tenant id (`openstack_tenant_id`). Alternatively you can use `:openstack_identity_api_version` parameter with 'v2.0'. ```ruby @connection_params = { openstack_auth_url: "http://devstack.test:5000", openstack_username: "admin", openstack_api_key: "password", openstack_tenant: "admin" } ``` If you're not sure whether your OpenStack cloud uses Keystone V2 or V3 then you can find out by logging into the dashboard (Horizon) and navigating to "Access & Security" under the "Project" section. Select "API Access" and find the line for the Identity Service. If the endpoint has "v3" in it, you're on Keystone V3, if it has "v2" then (surprise) you're on Keystone V2. If you need a version of OpenStack to test against, get youself a copy of [DevStack](http://docs.openstack.org/developer/devstack/). ### Networking Gotcha Note that tenants (aka projects) in OpenStack usually require that you create a default gateway router in order to allow external access to your instances. The exception is if you're using Nova (and not Neutron) for your instance networking. If you're using Neutron, you'll want to [set up your default gateway](https://github.com/fog/fog-openstack/blob/usage_doc/README.md#networking-neutron) before you try to give instances public addresses (aka floating IPs). ### Compute (Nova) Initialise a connection to the compute service: ```ruby compute = Fog::OpenStack::Compute.new(@connection_params) ``` Get a list of available images for use with booting new instances: ```ruby p compute.images # => # ] # > ``` List available flavors so we can decide how powerful to make this instance: ```ruby p compute.flavors # => , # , # ... ``` Now we know the `id` numbers of a valid image and a valid flavor, we can instantiate an instance: ```ruby flavor = compute.flavors[0] image = compute.images[0] instance = compute.servers.create name: 'test', image_ref: image.id, flavor_ref: flavor.id # Optionally, wait for the instance to provision before continuing instance.wait_for { ready? } # => {:duration=>17.359134} p instance # => [{"OS-EXT-IPS-MAC:mac_addr"=>"fa:16:3e:f4:75:ab", "version"=>4, "addr"=>"1.2.3.4", "OS-EXT-IPS:type"=>"fixed"}]}, # flavor={"id"=>"2"}, # host_id="f5ea01262720d02e886508bc4fa994782c516557d232c72aeb79638e", # image={"id"=>"57a67f8a-7bae-4578-b684-b9b4dcd48d7f"}, # name="test", # personality=nil, # progress=0, # accessIPv4="", # accessIPv6="", # availability_zone="nova", # user_data_encoded=nil, # state="ACTIVE", # created=2016-03-07 08:07:36 UTC, # updated=2016-03-07 08:07:52 UTC, # tenant_id="06a9a90c60074cdeae5f7fdd0048d9ac" # ... # > ``` And destroy it when we're done: ```ruby instance.destroy # => true ``` You'll probably need your instances to be accessible via SSH. [Learn more about SSH keypairs](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/). Allow TCP traffic through port 22: ```ruby security_group = compute.security_groups.create name: "Test SSH", description: "Allow access to port 22" # => , # tenant_id="06a9a90c60074cdeae5f7fdd0048d9ac" # > compute.security_group_rules.create parent_group_id: security_group.id, ip_protocol: "tcp", from_port: 22, to_port: 22 key_pair = compute.key_pairs.create name: "My Public Key", public_key: "/full/path/to/ssh.pub" # => ``` Now create a new server using the security group and keypair we created: ```ruby instance = compute.servers.create name: "Test 2", image_ref: image.id, flavor_ref: flavor.id, key_name: key_pair.name, security_groups: security_group # => # (some data omitted for brevity) ``` Finally, assign a floating IP address to make this instance sit under a world-visible public IP address: ```ruby pool_name = compute.addresses.get_address_pools[0]['name'] floating_ip_address = compute.addresses.create pool: pool_name instance.associate_address floating_ip_address.ip p floating_ip_address # => ``` Now you can SSH into the instance: ``` $ ssh cirros@1.2.3.4 The authenticity of host '1.2.3.4 (1.2.3.4)' can't be established. RSA key fingerprint is SHA256:cB0L/owUtcHsMhFhsuSZXxK4oRg/uqP/6IriUomQnQQ. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '1.2.3.4' (RSA) to the list of known hosts. $ pwd /home/cirros ``` ### Volume (Cinder) Create and attach a volume to a running instance: ```ruby compute = Fog::OpenStack::Compute.new(@connection_params) volume = compute.volumes.create name: "Test", description: "Testing", size: 1 # => flavor = compute.flavors[3] image = compute.images[0] instance = compute.servers.create name: "test", image_ref: image.id, flavor_ref: flavor.id instance.wait_for { ready? } volume.reload instance.attach_volume(volume.id, "/dev/vdb") ``` Detach volume and create a snapshot: ```ruby instance.detach_volume(volume.id) volume.reload compute.snapshots.create volume_id: volume.id, name: "test", description: "test" # => ``` Destroy a volume: ```ruby volume.destroy # => true ``` ### Image (Glance) Download Glance image: ```ruby image = Fog::OpenStack::Image.new(@connection_params) image_out = File.open("/tmp/cirros-image-download", 'wb') streamer = lambda do |chunk, _, _| image_out.write chunk end image.download_image(image.images.first.id, response_block: streamer) ``` Create Glance image from file or URL: ```ruby cirros_location = "http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img" image_out = File.open("/tmp/cirros-image-#{SecureRandom.hex}", 'wb') streamer = lambda do |chunk, _, _| image_out.write chunk end Excon.get cirros_location, response_block: streamer image_out.close image_handle = image.images.create name: "cirros", disk_format: "qcow2", container_format: "bare" # => image_handle.upload_data File.binread(image_out.path) ``` Destroy image: ```ruby cirros = image.images.get("4beedb46-e32f-4ef3-a87b-7f1234294dc1") cirros.destroy ``` ### Identity (Keystone) List domains (Keystone V3 only): ```ruby identity = Fog::OpenStack::Identity.new(@connection_params) identity.domains # => # ] # > ``` List projects (aka tenants): ```ruby identity.projects # => , # ... # ] # On Keystone V2 identity.tenants # => user.destroy # => true ``` Create/destroy new tenant: ```ruby project = identity.projects.create name: "test", description: "test" # => project.destroy # => true ``` Grant user role on tenant and revoke it: ```ruby role = identity.roles.select{|role| role.name == "_member_"}[0] # => project.grant_role_to_user(role.id, user.id) project.revoke_role_from_user(role.id, user.id) ``` ### Networking (Neutron) Set up a project's public gateway (needed for external access): ```ruby identity = Fog::OpenStack::Identity.new(@connection_params) tenants = identity.projects.select do |project| project.name == @connection_params[:openstack_project_name] end tenant_id = tenants[0].id neutron = Fog::OpenStack::Network.new(@connection_params) network = neutron.networks.create name: "default", tenant_id: tenant_id subnet = network.subnets.create name: "default", cidr: "192.168.0.0/24", network_id: network.id, ip_version: 4, dns_nameservers: ["8.8.8.8", "8.8.4.4"], tenant_id: tenant_id external_network = neutron.networks.select(&:router_external)[0] router = neutron.routers.create name: 'default', tenant_id: tenant_id, external_gateway_info: external_network.id neutron.add_router_interface router.id, subnet.id ``` ### Further Reading * See [the documentation directory](https://github.com/fog/fog-openstack/tree/master/lib/fog/openstack/docs) for more examples. * Read the [OpenStack API documentation](http://developer.openstack.org/api-ref.html). * Also, remember that reading the code itself is the best way to educate yourself on how best to interact with this gem. ## Development ``` $ git clone https://github.com/fog/fog-openstack.git # Clone repository $ cd fog-openstack; bin/setup # Install dependencies from project directory $ bundle exec rake test # Run tests $ bundle exec rake spec # Run tests $ bin/console # Run interactive prompt that allows you to experiment (optional) $ bundle exec rake install # Install gem to your local machine (optional) ``` You can also use a docker image for development and running tests. Once you have cloned the repository, it can be run with: ``` $ docker-compose up test $ docker-compose up ruby # Start a container with the ruby environment ``` In order to release a new version, perform the following steps: 1. Update version number in `version.rb`. 2. Run `bundle exec rake release`, which will create a git tag for the version. 3. Push git commits and tags. 4. Push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/fog/fog-openstack. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). fog-openstack-1.1.5/Rakefile000066400000000000000000000016371476630434000157410ustar00rootroot00000000000000require 'bundler/gem_tasks' require 'rubocop/rake_task' require 'rake/testtask' RuboCop::RakeTask.new task :default => ['tests:mock', 'tests:spec', 'tests:unit'] task :mock => 'tests:mock' task :spec => "tests:spec" task :unit => 'tests:unit' namespace :tests do desc 'Run fog-openstack tests with Mock class' Rake::TestTask.new do |t| ENV['FOG_MOCK']= ENV['FOG_MOCK'].nil? ? 'true' : ENV['FOG_MOCK'] t.name = 'mock' t.libs.push [ "lib", "test" ] t.test_files = FileList['test/**/*.rb'] t.verbose = true end desc 'Run fog-openstack tests with RSpec and VCR' Rake::TestTask.new do |t| t.name = 'spec' t.libs.push [ "lib", "spec" ] t.pattern = 'spec/**/*_spec.rb' t.verbose = true end desc 'Run fog-openstack unit tests' Rake::TestTask.new do |t| t.name = 'unit' t.libs.push [ "lib", "unit" ] t.pattern = 'unit/**/*_test.rb' t.verbose = true end end fog-openstack-1.1.5/SECURITY.md000066400000000000000000000002721476630434000160570ustar00rootroot00000000000000## Security contact information To report a security vulnerability, please contact [Tidelift security](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. fog-openstack-1.1.5/bin/000077500000000000000000000000001476630434000150355ustar00rootroot00000000000000fog-openstack-1.1.5/bin/console000077500000000000000000000005221476630434000164240ustar00rootroot00000000000000#!/usr/bin/env ruby require "bundler/setup" require "fog/openstack" # You can add fixtures and/or initialization code here to make experimenting # with your gem easier. You can also use a different console, if you like. # (If you use this, don't forget to add pry to your Gemfile!) # require "pry" # Pry.start require "irb" IRB.start fog-openstack-1.1.5/bin/setup000077500000000000000000000002031476630434000161160ustar00rootroot00000000000000#!/usr/bin/env bash set -euo pipefail IFS=$'\n\t' set -vx bundle install # Do any other automated setup that you need to do here fog-openstack-1.1.5/docker-compose.yml000066400000000000000000000016411476630434000177240ustar00rootroot00000000000000# # This file allows to: # - create a ruby docker environment for development # - run a testsuite from scratch like .travis.yml # # Run all tests with # # $ docker-compose up test # # Create the develompent environment with # # $ docker-compose up -d ruby # $ docker exec -ti fogopenstack_ruby_1 /bin/bash # version: '2' services: ruby: image: ruby:2.4-stretch cap_add: - SYS_PTRACE volumes: - .:/code:z - .:/home/travis/build/fog/fog-openstack:z entrypoint: tail -f /etc/hosts test: image: ruby:2.4-stretch cap_add: - SYS_PTRACE volumes: - .:/code:z - .:/home/travis/build/fog/fog-openstack:z environment: - JRUBY_OPTS=--debug working_dir: /home/travis/build/fog/fog-openstack entrypoint: | bash -c ' gem update bundler --verbose bundle install --verbose bundle exec rake test bundle exec rake spec ' fog-openstack-1.1.5/docs/000077500000000000000000000000001476630434000152155ustar00rootroot00000000000000fog-openstack-1.1.5/docs/common/000077500000000000000000000000001476630434000165055ustar00rootroot00000000000000fog-openstack-1.1.5/docs/common/connection_params.md000066400000000000000000000020271476630434000225320ustar00rootroot00000000000000### Optional Connection Parameters Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
Key Description
:connect_timeout Connection timeout (default: 60 seconds)
:read_timeout Read timeout for connection (default: 60 seconds)
:write_timeout Write timeout for connection (default: 60 seconds)
:proxy Proxy for HTTP and HTTPS connections
:ssl_ca_path Path to SSL certificate authorities
:ssl_ca_file SSL certificate authority file
:ssl_verify_peer SSL verify peer (default: true)
:debug_request debug print request (default: false)
:debug_response debug print response (default: false)
fog-openstack-1.1.5/docs/common/resources.md000066400000000000000000000006541476630434000210460ustar00rootroot00000000000000## Resources * [fog.io](http://fog.io/) * [fog-openstack rdoc](http://rubydoc.info/gems/fog-openstack) * [fog-openstack Github repo](https://github.com/fog/fog-openstack) * [Excon Github repo](https://github.com/geemus/excon) ## Support and Feedback Your feedback is appreciated! If you have specific issues with the **fog-openstack** SDK, you should file an [issue via Github](https://github.com/fog/fog-openstack/issues). fog-openstack-1.1.5/docs/compute.md000066400000000000000000000726571476630434000172340ustar00rootroot00000000000000#Compute (Nova) This document explains how to get started using OpenStack Compute (Nova) with Fog. It assumes you have read the [Getting Started with Fog and the OpenStack](getting_started.md) document. ## Starting irb console Start by executing the following command: irb Once `irb` has launched you need to require the Fog library by executing: require 'fog/openstack' ## Create Service Next, create a connection to the Compute Service: service = Fog::OpenStack::Compute.new({ :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v2.0/tokens', # OpenStack Keystone endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_tenant => OPEN_STACK_TENANT, # Your tenant id :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional }) **Note** `openstack_username` and `openstack_tenant` default to `admin` if omitted. Read more about the [Optional Connection Parameters](common/connection_params.md) ## Fog Abstractions Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface. ### Request Layer The request abstraction maps directly to the [OpenStack Compute API](http://docs.openstack.org/api/openstack-compute/2/content/). It provides the most efficient interface to the OpenStack Compute service. To see a list of requests supported by the service: service.requests This returns: :list_servers, :list_servers_detail, :create_server, :get_server_details, :update_server, :delete_server, :server_actions, :server_action, :reboot_server, :rebuild_server, :resize_server, :confirm_resize_server, :revert_resize_server, :pause_server, :unpause_server, :suspend_server, :resume_server, :rescue_server, :change_server_password, :add_fixed_ip, :remove_fixed_ip, :server_diagnostics, :boot_from_snapshot, :reset_server_state, :get_console_output, :get_vnc_console, :live_migrate_server, :migrate_server, :list_images, :list_images_detail, :create_image, :get_image_details, :delete_image, :list_flavors, :list_flavors_detail, :get_flavor_details, :create_flavor, :delete_flavor, :add_flavor_access, :remove_flavor_access, :list_tenants_with_flavor_access, :list_metadata, :get_metadata, :set_metadata, :update_metadata, :delete_metadata, :delete_meta, :update_meta, :list_addresses, :list_address_pools, :list_all_addresses, :list_private_addresses, :list_public_addresses, :get_address, :allocate_address, :associate_address, :release_address, :disassociate_address, :list_security_groups, :get_security_group, :create_security_group, :create_security_group_rule, :delete_security_group, :delete_security_group_rule, :get_security_group_rule, :list_key_pairs, :create_key_pair, :delete_key_pair, :list_tenants, :set_tenant, :get_limits, :list_volumes, :create_volume, :get_volume_details, :delete_volume, :attach_volume, :detach_volume, :get_server_volumes, :create_snapshot, :list_snapshots, :get_snapshot_details, :delete_snapshot, :list_usages, :get_usage, :get_quota, :get_quota_defaults, :update_quota, :list_hosts, :get_host_details #### Example Request To request a list of flavors: response = service.list_flavors This returns in the following `Excon::Response`: #{"flavors"=>[{"id"=>"1", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}], "name"=>"m1.tiny"}, {"id"=>"2", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"bookmark"}], "name"=>"m1.small"}, {"id"=>"3", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3", "rel"=>"bookmark"}], "name"=>"m1.medium"}, {"id"=>"4", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4", "rel"=>"bookmark"}], "name"=>"m1.large"}, {"id"=>"42", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42", "rel"=>"bookmark"}], "name"=>"m1.nano"}, {"id"=>"5", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5", "rel"=>"bookmark"}], "name"=>"m1.xlarge"}, {"id"=>"84", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84", "rel"=>"bookmark"}], "name"=>"m1.micro"}]}, :headers=>{"Content-Type"=>"application/json", "Content-Length"=>"1748", "X-Compute-Request-Id"=>"req-ae3bcf11-deab-493b-a2d8-1432dead3f7a", "Date"=>"Thu, 09 Jan 2014 17:01:15 GMT"}, :status=>200, :remote_ip=>"localhost"}, @body="{\"flavors\": [{\"id\": \"1\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1\", \"rel\": \"bookmark\"}], \"name\": \"m1.tiny\"}, {\"id\": \"2\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2\", \"rel\": \"bookmark\"}], \"name\": \"m1.small\"}, {\"id\": \"3\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3\", \"rel\": \"bookmark\"}], \"name\": \"m1.medium\"}, {\"id\": \"4\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4\", \"rel\": \"bookmark\"}], \"name\": \"m1.large\"}, {\"id\": \"42\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42\", \"rel\": \"bookmark\"}], \"name\": \"m1.nano\"}, {\"id\": \"5\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5\", \"rel\": \"bookmark\"}], \"name\": \"m1.xlarge\"}, {\"id\": \"84\", \"links\": [{\"href\": \"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84\", \"rel\": \"self\"}, {\"href\": \"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84\", \"rel\": \"bookmark\"}], \"name\": \"m1.micro\"}]}", @headers={"Content-Type"=>"application/json", "Content-Length"=>"1748", "X-Compute-Request-Id"=>"req-ae3bcf11-deab-493b-a2d8-1432dead3f7a", "Date"=>"Thu, 09 Jan 2014 17:01:15 GMT"}, @status=200, @remote_ip="localhost"> To view the status of the response: response.status **Note**: Fog is aware of valid HTTP response statuses for each request type. If an unexpected HTTP response status occurs, Fog will raise an exception. To view response body: response.body This will return: {"flavors"=>[{"id"=>"1", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}], "name"=>"m1.tiny"}, {"id"=>"2", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"bookmark"}], "name"=>"m1.small"}, {"id"=>"3", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/3", "rel"=>"bookmark"}], "name"=>"m1.medium"}, {"id"=>"4", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/4", "rel"=>"bookmark"}], "name"=>"m1.large"}, {"id"=>"42", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/42", "rel"=>"bookmark"}], "name"=>"m1.nano"}, {"id"=>"5", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/5", "rel"=>"bookmark"}], "name"=>"m1.xlarge"}, {"id"=>"84", "links"=>[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/84", "rel"=>"bookmark"}], "name"=>"m1.micro"}]} To learn more about Compute request methods refer to [rdoc](http://rubydoc.info/gems/fog/fog/openstack/compute/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon). ### Model Layer Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `persisted?`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors. Here is a summary of common model methods:
Method Description
create Accepts hash of attributes and creates object.
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
save Saves object.
Note: not all objects support updating object.
persisted? Returns true if the object has been persisted.
destroy Destroys object.
Note: this is a non-blocking call and object deletion might not be instantaneous.
reload Updates object with latest state from service.
ready? Returns true if object is in a ready state and able to perform actions. This method will raise an exception if object is in an error state.
attributes Returns a hash containing the list of model attributes and values.
identity Returns the identity of the object.
Note: This might not always be equal to object.id.
wait_for This method periodically reloads model and then yields to specified block until block returns true or a timeout occurs.
The remainder of this document details the model abstraction. ## List Images To retrieve a list of available images: service.images This returns a collection of `Fog::OpenStack::Compute::Image` models: , ] >, links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"bookmark"}, {"href"=>"http://localhost:9292/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}] >, , links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/images/e21af7e2-a181-403a-84a4-fd9df36cb963", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/e21af7e2-a181-403a-84a4-fd9df36cb963", "rel"=>"bookmark"}, {"href"=>"http://localhost:9292/b5bf8e689bc64844b1d08094a2f2bdd5/images/e21af7e2-a181-403a-84a4-fd9df36cb963", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}] >, … ## Get Image To retrieve individual image: service.images.get "821e2b73-5aed-4f9d-aaa7-2f4f297779f3" This returns an `Fog::OpenStack::Compute::Image` instance: , ] >, links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"bookmark"}, {"href"=>"http://localhost:9292/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}] > ## List Flavors To retrieve a list of available flavors: service.flavors This returns a collection of `Fog::OpenStack::Compute::Flavor` models: "http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}], swap="", rxtx_factor=1.0, ephemeral=0, is_public=true, disabled=false >, "http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/2", "rel"=>"bookmark"}], swap="", rxtx_factor=1.0, ephemeral=0, is_public=true, disabled=false >, … ## Get Flavor To retrieve individual flavor: service.flavors.get 1 This returns a `Fog::OpenStack::Compute::Flavor` instance: "http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}], swap="", rxtx_factor=1.0, ephemeral=0, is_public=true, disabled=false > ## List Servers To retrieve a list of available servers: service.servers This returns a collection of `Fog::OpenStack::Compute::Servers` models: [{"OS-EXT-IPS-MAC:mac_addr"=>"fa:16:3e:14:34:b8", "version"=>4, "addr"=>"10.0.0.5", "OS-EXT-IPS:type"=>"fixed"}]}, flavor={"id"=>"1", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}]}, host_id="bb705edc279c520d97ad6fbd0b8e75a5c716388616f58e527d0ff633", image={"id"=>"821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"bookmark"}]}, metadata= , links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/servers/4572529c-0cfc-433e-8dbf-7cc383ed5b7c", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/servers/4572529c-0cfc-433e-8dbf-7cc383ed5b7c", "rel"=>"bookmark"}], name="doc-test", personality=nil, progress=0, accessIPv4="", accessIPv6="", availability_zone="nova", user_data_encoded=nil, state="ACTIVE", created=2013-10-10 18:17:46 UTC, updated=2013-10-10 18:17:56 UTC, tenant_id="b5bf8e689bc64844b1d08094a2f2bdd5", user_id="dbee88bc901b4593867c105b2b1ad15b", key_name=nil, fault=nil, config_drive="", os_dcf_disk_config="MANUAL", os_ext_srv_attr_host="devstack", os_ext_srv_attr_hypervisor_hostname="devstack", os_ext_srv_attr_instance_name="instance-00000016", os_ext_sts_power_state=1, os_ext_sts_task_state=nil, os_ext_sts_vm_state="active" >, … ## Get Server To return an individual server: service.servers.get "4572529c-0cfc-433e-8dbf-7cc383ed5b7c" This returns a `Fog::OpenStack::Compute::Server` instance: [{"OS-EXT-IPS-MAC:mac_addr"=>"fa:16:3e:14:34:b8", "version"=>4, "addr"=>"10.0.0.5", "OS-EXT-IPS:type"=>"fixed"}]}, flavor={"id"=>"1", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}]}, host_id="bb705edc279c520d97ad6fbd0b8e75a5c716388616f58e527d0ff633", image={"id"=>"821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"bookmark"}]}, metadata= , links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/servers/4572529c-0cfc-433e-8dbf-7cc383ed5b7c", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/servers/4572529c-0cfc-433e-8dbf-7cc383ed5b7c", "rel"=>"bookmark"}], name="doc-test", personality=nil, progress=0, accessIPv4="", accessIPv6="", availability_zone="nova", user_data_encoded=nil, state="ACTIVE", created=2013-10-10 18:17:46 UTC, updated=2013-10-10 18:17:56 UTC, tenant_id="b5bf8e689bc64844b1d08094a2f2bdd5", user_id="dbee88bc901b4593867c105b2b1ad15b", key_name=nil, fault=nil, config_drive="", os_dcf_disk_config="MANUAL", os_ext_srv_attr_host="devstack", os_ext_srv_attr_hypervisor_hostname="devstack", os_ext_srv_attr_instance_name="instance-00000016", os_ext_sts_power_state=1, os_ext_sts_task_state=nil, os_ext_sts_vm_state="active" > ## Create Server If you are interested in creating a server utilizing ssh key authentication, you are recommended to use [bootstrap](#bootstrap) method. To create a server: flavor = service.flavors.first image = service.images.first server = service.servers.create(:name => 'fog-doc', :flavor_ref => flavor.id, :image_ref => image.id) **Note**: The `:name`, `:flavor_ref`, and `image_ref` attributes are required for server creation. This will return a `Fog::OpenStack::Compute::Server` instance: , links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/servers/81746324-94ab-44fb-9aa9-ee0b4d95fa34", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/servers/81746324-94ab-44fb-9aa9-ee0b4d95fa34", "rel"=>"bookmark"}], name="fog-doc", personality=nil, progress=nil, accessIPv4=nil, accessIPv6=nil, availability_zone=nil, user_data_encoded=nil, state=nil, created=nil, updated=nil, tenant_id=nil, user_id=nil, key_name=nil, fault=nil, config_drive=nil, os_dcf_disk_config="MANUAL", os_ext_srv_attr_host=nil, os_ext_srv_attr_hypervisor_hostname=nil, os_ext_srv_attr_instance_name=nil, os_ext_sts_power_state=nil, os_ext_sts_task_state=nil, os_ext_sts_vm_state=nil > Notice that your server contains several `nil` attributes. To see the latest status, reload the instance as follows: server.reload You can see that the server is currently being built: [{"OS-EXT-IPS-MAC:mac_addr"=>"fa:16:3e:71:0d:c4", "version"=>4, "addr"=>"10.0.0.2", "OS-EXT-IPS:type"=>"fixed"}]}, flavor={"id"=>"1", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/flavors/1", "rel"=>"bookmark"}]}, host_id="bb705edc279c520d97ad6fbd0b8e75a5c716388616f58e527d0ff633", image={"id"=>"821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "links"=>[{"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/images/821e2b73-5aed-4f9d-aaa7-2f4f297779f3", "rel"=>"bookmark"}]}, metadata= , links=[{"href"=>"http://localhost:8774/v2/b5bf8e689bc64844b1d08094a2f2bdd5/servers/5f50aeff-a745-4cbc-9f8b-0356142e6f95", "rel"=>"self"}, {"href"=>"http://localhost:8774/b5bf8e689bc64844b1d08094a2f2bdd5/servers/5f50aeff-a745-4cbc-9f8b-0356142e6f95", "rel"=>"bookmark"}], name="fog-doc", personality=nil, progress=0, accessIPv4="", accessIPv6="", availability_zone="nova", user_data_encoded=nil, state="BUILD", created=2014-01-09 19:43:52 UTC, updated=2014-01-09 19:43:58 UTC, tenant_id="b5bf8e689bc64844b1d08094a2f2bdd5", user_id="dbee88bc901b4593867c105b2b1ad15b", key_name=nil, fault=nil, config_drive="", os_dcf_disk_config="MANUAL", os_ext_srv_attr_host="devstack", os_ext_srv_attr_hypervisor_hostname="devstack", os_ext_srv_attr_instance_name="instance-00000018", os_ext_sts_power_state=0, os_ext_sts_task_state="spawning", os_ext_sts_vm_state="building" > You will be unable to perform any actions to this server until it reaches an `ACTIVE` state. Since this is true for most server actions, Fog provides the convenience method `wait_for`. Fog can wait for the server to become ready as follows: server.wait_for { ready? } **Note**: The `Fog::OpenStack::Compute::Server` instance returned from the create method contains a `password` attribute. The `password` attribute will NOT be present in subsequent retrievals either through `service.servers` or `service.servers.get my_server_id`. ### Additional Parameters The `create` method also supports the following key values:
Key Description
:metadata Hash containing server metadata.
:personality Array of files to be injected onto the server. Please refer to the Fog personality API documentation for further information.
## Bootstrap In addition to the `create` method, Fog provides a `bootstrap` method which creates a server and then performs the following actions via ssh: 1. Create `ROOT_USER/.ssh/authorized_keys` file using the ssh key specified in `:public_key_path`. 2. Lock password for root user using `passwd -l root`. 3. Create `ROOT_USER/attributes.json` file with the contents of `server.attributes`. 4. Create `ROOT_USER/metadata.json` file with the contents of `server.metadata`. **Note**: Unlike the `create` method, `bootstrap` is blocking method call. If non-blocking behavior is desired, developers should use the `:personality` parameter on the `create` method. The following example demonstrates bootstraping a server: service.servers.bootstrap :name => 'bootstrap-server', :flavor_id => service.flavors.first.id, :image_id => service.images.find {|img| img.name =~ /Ubuntu/}.id, :public_key_path => '~/.ssh/fog_rsa.pub', :private_key_path => '~/.ssh/fog_rsa' **Note**: The `:name`, `:flavor_ref`, `:image_ref`, `:public_key_path`, `:private_key_path` are required for the `bootstrap` method. The `bootstrap` method uses the same additional parameters as the `create` method. Refer to the [Additional Parameters](#additional-parameters) section for more information. ## SSH Once a server has been created and set up for ssh key authentication, fog can execute remote commands as follows: result = server.ssh ['pwd'] This will return the following: [#] **Note**: SSH key authentication can be set up using `bootstrap` method or by using the `:personality` attribute on the `:create` method. See [Bootstrap](#bootstrap) or [Create Server](#create-server) for more information. ## Delete Server To delete a server: server.destroy **Note**: The server is not immediately destroyed, but it does occur shortly there after. ## Change Admin Password To change the administrator password: server.change_password "superSecure" ## Reboot To perform a soft reboot: server.reboot To perform a hard reboot: server.reboot 'HARD' ## Rebuild Rebuild removes all data on the server and replaces it with the specified image. The id and all IP addresses remain the same. The rebuild method has the following method signature: def rebuild(image_ref, name, admin_pass=nil, metadata=nil, personality=nil) A basic server build is as follows: image = service.images.first server.rebuild(image.id, name) ## Resize Resizing a server allows you to change the resources dedicated to the server. To resize a server: flavor = service.flavor[2] server.resize flavor.id During the resize process the server will have a state of `RESIZE`. Once a server has completed resizing it will be in a `VERIFY_RESIZE` state. You can use Fog's `wait_for` method to wait for this state as follows: server.wait_for { server.status == 'VERIFY_RESIZE' } In this case, `wait_for` is waiting for the server to become `VERIFY_READY` and will raise an exception if we enter an `ACTIVE` or `ERROR` state. Once a server enters the `VERIFY_RESIZE` we will need to call `confirm_resize` to confirm the server was properly resized or `revert_resize` to rollback to the old size/flavor. **Note:** A server will automatically confirm resize after 24 hours. To confirm resize: server.confirm_resize To revert to previous size/flavor: server.revert_resize ## Create Image To create an image of your server: response = server.create_image "back-image-#{server.name}", :metadata => { :environment => 'development' } You can use the second parameter to specify image metadata. This is an optional parameter.` During the imaging process, the image state will be `SAVING`. The image is ready for use when when state `ACTIVE` is reached. Fog can use `wait_for` to wait for an active state as follows: image_id = response.body["image"]["id"] image = service.images.get image_id image.wait_for { ready? } ## List Attached Volumes To list Cloud Block Volumes attached to server: server.volume_attachments ## Attach Volume To attach volume using the volume id: server.attach_volume "0e7a706c-340d-48b3-802d-192850387f93", "/dev/xvdb" If the volume id is unknown you can look it up as follows: volume = service.volumes.first server.attach_volume volume.id, "/dev/xvdb" **Note** Valid device names are `/dev/xvd[a-p]`. ## Detach Volume To detach a volume: server.detach_volume volume.id ## Examples Example code using Compute can be found [here](https://github.com/fog/fog/tree/master/lib/fog/openstack/examples/compute). ## Additional Resources * [OpenStack Compute API](http://docs.openstack.org/api/openstack-compute/2/content/) * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/getting_started.md000066400000000000000000000045111476630434000207270ustar00rootroot00000000000000# Getting Started with Fog and OpenStack This document explains how to get started using Fog with [OpenStack](http://openstack.org) ## Requirements ### Ruby Fog officially supports Ruby 2.0.0, 1.9.3, 1.9.2, and 1.8.7 (also known as Matz Ruby Interpreter or MRI). While not officially supported, fog has been known to work with Rubinus and JRuby. Ruby 2.0.0 is suggested for new projects. For information on installing Ruby please refer to the [Ruby download page](http://www.ruby-lang.org/en/downloads/). ### RubyGems RubyGems is required to access the Fog gem. For information on installing RubyGems, please refer to [RubyGems download page](http://rubygems.org/pages/download). ### Bundler (optional) Bundler helps manage gem dependencies and is recommended for new projects. For more information about bundler, please refer to the [bundler documentation](http://gembundler.com/). ## Installation To install Fog-Openstack via RubyGems run the following command: $ gem install fog-openstack To install Fog via Bundler add `gem 'fog'` to your `Gemfile`. This is a sample `Gemfile` to install Fog: ```ruby source 'https://rubygems.org' gem 'fog-openstack' ``` After creating your `Gemfile` execute the following command to install the libraries: bundle install ## Next Steps Now that you have installed Fog and obtained your credentials, you are ready to begin exploring the capabilities of the Rackspace Open Cloud and Fog using `irb`. Start by executing the following command: irb Once `irb` has launched you will need to require the Fog library. If using Ruby 1.8.x execute the following command: ```ruby require 'rubygems' require 'fog/openstack' ``` If using Ruby 1.9.x execute the following command: ```ruby require 'fog/openstack' ``` You should now be able to execute the following command to see a list of services Fog provides for the Rackspace Open Cloud: ```ruby Fog::OpenStack.services ``` These services can be explored in further depth in the following documents: * [Compute](compute.md) * [Introspection](introspection.md) * [Metering](metering.md) * [Network](network.md) * [NFV](nfv.md) * [Orchestration](orchestration.md) * [Planning](planning.md) * [Shared File System](shared_file_system.md) * [Storage (Swift)](storage.md) * [Workflow](workflow.md) ## Additional Resources [resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/introspection.md000066400000000000000000000155351476630434000204500ustar00rootroot00000000000000# Introspection This document explains how to get started using introspection with fog-openstack. Please also refer to the [Getting Started with Fog and the OpenStack](getting_started.md) document. Introspection service is implemented by the OpenStack ironic-inspector project. Introspection is strongly related to the Baremetal service (Ironic project). Effectively, Instrospection communicates and operates on nodes defined by the Baremetal layer (Ironic). # OpenStack setup ## The catalog For the fog-openstack's introspection service to work, the corresponding service must be defined in the OpenStack catalog. ```bash openstack catalog show inspector +-----------+-----------------------------------------+ | Field | Value | +-----------+-----------------------------------------+ | endpoints | regionOne | | | publicURL: http://192.0.2.1:5050/v1 | | | internalURL: http://192.0.2.1:5050/v1 | | | adminURL: http://192.0.2.1:5050/v1 | | | | | name | inspector | | type | introspection | +-----------+-----------------------------------------+ ``` Depending on the OpenStack release, the introspection service might be installed but not defined yet in the catalog. In such case, you must add the service and corresponding endpoints to create the catalog entry: ```bash source ./stackrc openstack service create --name inspector --description "OpenStack Introspection" introspection openstack endpoint create --region regionOne inspector --publicurl http://example.com:5050/v1 --internalurl http://example.com:5050/v1 --adminurl http://example.com:5050/v1 ``` ## The introspection timeout The default timeout value after which introspection is considered failed is set by an 1 hour (3600 s) default. Although in production environment, baremetal introspection requires time, testing in virtual environment doesn't, this is why if you are in the latter case the timeout value can be reduced for speeding results: ```bash sudo openstack-config --set /etc/ironic-inspector/inspector.conf DEFAULT timeout 300 ``` # Work flow Assuming Baremetal nodes have been defined (imported), a usual work-flow might consist of: * Start introspection * Check introspection status or abort introspection * Retrieve introspection data * optionally, pre-defined DSL based rules can be defined and applied during introspection. For more details about this process please refer to http://docs.openstack.org/developer/ironic-inspector/workflow.html Using 'irb', we start with authentication: ```ruby @user = "admin" @project = "admin" @password = "secret" @base_url = "http://keystone.example.com:5000/v3/auth/tokens" require 'rubygems' require 'fog/openstack' @connection_params = { :openstack_auth_url => @base_url, :openstack_username => @user, :openstack_api_key => @password, :openstack_project_name => @project, :openstack_domain_id => "default" } ``` ## Baremetal node introspection ### Baremetal nodes Find the available Baremetal nodes. ```ruby iron = Fog::OpenStack::Baremetal.new(@connection_params) nodes = iron.node_list ``` ### Start introspection Let's start introspection using the first available node. Note: To be introspected, a node must be in "manage" state. If needed, use Baremetal Service to change the state with set_node_provision_state. For more information, please refer to http://docs.openstack.org/developer/ironic/deploy/install-guide.html#hardware-inspection ```ruby node_id = nodes.body["nodes"][0]["uuid"] inspector = Fog::OpenStack::Introspection.new(@connection_params) introspection1 = inspector.create_introspection(node_id) ``` If everything went well the status returned by the request must be 202 which means accepted: ```ruby introspection1.status => 202 ``` ### Check introspection status To check the status of the introspection: ```ruby inspector.get_introspection(node_id) ``` The body returned has 2 fields: * finished: A boolean, set to true if introspection process is finished * error: A null string unless an error occurred or the process was canceled by the operator (in case introspection was aborted) ### Abort an ongoing introspection To abort a node introspection: ```ruby inspector.abort_introspection(node_id) ``` ### Retrieve introspected data ```ruby inspector.get_introspection_details(node_id) ``` The response body will provide a *very* long list of information about the node. ## DSL rules ### Create rules ```ruby rule_set1 = { "description" => "Successful Rule", "actions" => [ { "action" => "set-attribute", "path" => "/extra/rule_success", "value" => "yes" } ], "conditions" => [ { "field" => "memory_mb", "op" => "ge", "value" => 256 }, { "field" => "local_gb", "op" => "ge", "value" => 1 } ] } rule_set2 = { "description" => "Failing Rule", "actions" => [ { "action" => "set-attribute", "path" => "/extra/rule_success", "value" => "no" }, { "action" => "fail", "message" => "This rule should not have run" } ], "conditions" => [ { "field" => "memory_mb", "op" => "lt", "value" => 42 }, { "field" => "local_gb", "op" => "eq", "value" => 0 } ], } inspector.create_rules(rule_set1) inspector.create_rules(rule_set2) ``` ### List all rules ```ruby inspector.list_rules.body => {"rules"=> [{"description"=>"Successful Rule", "links"=>[{"href"=>"/v1/rules/4bf1bf40-d30f-4f31-a970-f0290d7e751b", "rel"=>"self"}], "uuid"=>"4bf1bf40-d30f-4f31-a970-f0290d7e751b"}, {"description"=>"Failing Rule", "links"=>[{"href"=>"/v1/rules/0d6e6687-3f69-4c14-8cab-ea6ada78036f", "rel"=>"self"}], "uuid"=>"0d6e6687-3f69-4c14-8cab-ea6ada78036f"}]} ``` ### Show rules details ```ruby inspector.get_rules('0d6e6687-3f69-4c14-8cab-ea6ada78036f').body => {"actions"=> [{"action"=>"set-attribute", "path"=>"/extra/rule_success", "value"=>"no"}, {"action"=>"fail", "message"=>"This rule should not have run"}], "conditions"=>[{"field"=>"memory_mb", "op"=>"lt", "value"=>42}, {"field"=>"local_gb", "op"=>"eq", "value"=>0}], "description"=>"Failing Rule", "links"=>[{"href"=>"/v1/rules/0d6e6687-3f69-4c14-8cab-ea6ada78036f", "rel"=>"self"}], "uuid"=>"0d6e6687-3f69-4c14-8cab-ea6ada78036f"} ``` ### Delete a specific rules set ```ruby inspector.delete_rules'0d6e6687-3f69-4c14-8cab-ea6ada78036f') inspector.list_rules.body => {"rules"=> [{"description"=>"Successful Rule", "links"=>[{"href"=>"/v1/rules/4bf1bf40-d30f-4f31-a970-f0290d7e751b", "rel"=>"self"}], "uuid"=>"4bf1bf40-d30f-4f31-a970-f0290d7e751b"}]} ``` ### Destroys all rules ```ruby inspector.delete_rules_all inspector.list_rules.body => {"rules"=>[]} ``` fog-openstack-1.1.5/docs/metering.md000066400000000000000000000030271476630434000173530ustar00rootroot00000000000000# OpenStack Metering (Ceilometer) This document explains how to get started using OpenStack Metering (Ceilometer) with Fog. It assumes you have read the [Getting Started with Fog and the OpenStack](getting_started.md) document. Fog uses the [OpenStack Metering API](http://docs.openstack.org/developer/ceilometer/webapi/v2.html). ## Metering Service Get a handle on the Metering service: ```ruby service = Fog::OpenStack::Metering.new({ :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v2.0/tokens', # OpenStack Keystone endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_tenant => OPEN_STACK_TENANT, # Your tenant id :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional }) ``` ## Events * `service.events([])`: Return a list of events. * `service.events.find_by_id()`: Return the event matching message_id, or nil if no such event exists. ### Filter events example Return events newer than 2016-03-17T09:59:44.606000. ```ruby query_filter = [{ 'field' => 'start_timestamp', 'op' => 'gt', 'value' => '2016-03-17T09:59:44.606000' }] service.events(query_filter) ``` ## Resources * `service.resources`: Return a list of resources. * `service.resources.find_by_id()`: Return the resource matching resource_id, or nil if no such resource exists. fog-openstack-1.1.5/docs/network.md000066400000000000000000000225051476630434000172340ustar00rootroot00000000000000# Network (Neutron) This document explains how to get started using OpenStack Network (Neutron) with Fog. It assumes you have read the [Getting Started with Fog and OpenStack](getting_started.md) document. ## Starting irb console Start by executing the following command: ``` irb ``` Once `irb` has launched you need to require the Fog library by executing: ``` require 'fog/openstack' ``` ## Create Service Next, create a connection to the Network Service: ``` service = Fog::OpenStack::Network.new( :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v3/auth/tokens', # OpenStack Keystone v3 endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_domain_name => OPEN_STACK_DOMAIN, # Your OpenStack Domain name :openstack_project_name => OPEN_STACK_PROJECT, # Your OpenStack Project name :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional ) ``` Read more about the [Optional Connection Parameters](common/connection_params.md) ## Fog Abstractions Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface. ### Request Layer The request abstraction maps directly to the [OpenStack Network API](http://developer.openstack.org/api-ref-networking-v2.html). It provides the most efficient interface to the OpenStack Network service. To see a list of requests supported by the service: ``` service.requests ``` This returns: ``` :list_networks, :create_network, :delete_network, :get_network, :update_network, :list_ports, :create_port, :delete_port, :get_port, :update_port, :list_subnets, :create_subnet, :delete_subnet, :get_subnet, :update_subnet, :list_floating_ips, :create_floating_ip, :delete_floating_ip, :get_floating_ip, :associate_floating_ip, :disassociate_floating_ip, :list_routers, :create_router, :delete_router, :get_router, :update_router, :add_router_interface, :remove_router_interface, :list_lb_pools, :create_lb_pool, :delete_lb_pool, :get_lb_pool, :get_lb_pool_stats, :update_lb_pool, :list_lb_members, :create_lb_member, :delete_lb_member, :get_lb_member, :update_lb_member, :list_lb_health_monitors, :create_lb_health_monitor, :delete_lb_health_monitor, :get_lb_health_monitor, :update_lb_health_monitor, :associate_lb_health_monitor, :disassociate_lb_health_monitor, :list_lb_vips, :create_lb_vip, :delete_lb_vip, :get_lb_vip, :update_lb_vip, :list_vpn_services, :create_vpn_service, :delete_vpn_service, :get_vpn_service, :update_vpn_service, :list_ike_policies, :create_ike_policy, :delete_ike_policy, :get_ike_policy, :update_ike_policy, :list_ipsec_policies, :create_ipsec_policy, :delete_ipsec_policy, :get_ipsec_policy, :update_ipsec_policy, :list_ipsec_site_connections, :create_ipsec_site_connection, :delete_ipsec_site_connection, :get_ipsec_site_connection, :update_ipsec_site_connection, :list_rbac_policies, :create_rbac_policy, :delete_rbac_policy, :get_rbac_policy, :update_rbac_policy, :create_security_group, :delete_security_group, :get_security_group, :list_security_groups, :create_security_group_rule, :delete_security_group_rule, :get_security_group_rule, :list_security_group_rules, :set_tenant, :get_quotas, :get_quota, :update_quota, :delete_quota ``` #### Example Request To request a list of networks: ``` response = service.list_networks ``` This returns in the following `Excon::Response`: ``` #{"networks"=>[ {"id"=>"f9c54735-a230-443e-9379-b87f741cc1b1", "name"=>"Public", "subnets"=>["db50da7f-1248-43d2-aa30-1c10da0d380d"], "shared"=>true, "status"=>"ACTIVE", "tenant_id"=>"a51fd915", "provider_network_type"=>"vlan", "router:external"=>false, "admin_state_up"=>true}, {"id"=>"e624a36d-762b-481f-9b50-4154ceb78bbb", "name"=>"network_1", "subnets"=>["2e4ec6a4-0150-47f5-8523-e899ac03026e"], "shared"=>false, "status"=>"ACTIVE", "admin_state_up"=>true, "tenant_id"=>"f8b26a6032bc47718a7702233ac708b9"}]}, :status=>200, :headers=>{}}, @body={"networks"=>[ {"id"=>"f9c54735-a230-443e-9379-b87f741cc1b1", "name"=>"Public", "subnets"=>["db50da7f-1248-43d2-aa30-1c10da0d380d"], "shared"=>true, "status"=>"ACTIVE", "tenant_id"=>"a51fd915", "provider_network_type"=>"vlan", "router:external"=>false, "admin_state_up"=>true}, {"id"=>"e624a36d-762b-481f-9b50-4154ceb78bbb", "name"=>"network_1", "subnets"=>["2e4ec6a4-0150-47f5-8523-e899ac03026e"], "shared"=>false, "status"=>"ACTIVE", "admin_state_up"=>true, "tenant_id"=>"f8b26a6032bc47718a7702233ac708b9"}]}, @headers={}, @status=200, @remote_ip=nil, @local_port=nil, @local_address=nil > ``` To view the status of the response: ``` response.status ``` **Note**: Fog is aware of valid HTTP response statuses for each request type. If an unexpected HTTP response status occurs, Fog will raise an exception. To view response body: ``` response.body ``` This will return: ``` {"networks"=>[ {"id"=>"f9c54735-a230-443e-9379-b87f741cc1b1", "name"=>"Public", "subnets"=>["db50da7f-1248-43d2-aa30-1c10da0d380d"], "shared"=>true, "status"=>"ACTIVE", "tenant_id"=>"a51fd915", "provider_network_type"=>"vlan", "router:external"=>false, "admin_state_up"=>true}, {"id"=>"e624a36d-762b-481f-9b50-4154ceb78bbb", "name"=>"network_1", "subnets"=>["2e4ec6a4-0150-47f5-8523-e899ac03026e"], "shared"=>false, "status"=>"ACTIVE", "admin_state_up"=>true, "tenant_id"=>"f8b26a6032bc47718a7702233ac708b9"}] } ``` To learn more about Network request methods refer to [rdoc](http://www.rubydoc.info/gems/fog-openstack/fog/openstack/network/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon). ### Model Layer Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `persisted?`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors. Here is a summary of common model methods:
Method Description
create Accepts hash of attributes and creates object.
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
save Saves object.
Note: not all objects support updating object.
persisted? Returns true if the object has been persisted.
destroy Destroys object.
Note: this is a non-blocking call and object deletion might not be instantaneous.
reload Updates object with latest state from service.
ready? Returns true if object is in a ready state and able to perform actions. This method will raise an exception if object is in an error state.
attributes Returns a hash containing the list of model attributes and values.
identity Returns the identity of the object.
Note: This might not always be equal to object.id.
wait_for This method periodically reloads model and then yields to specified block until block returns true or a timeout occurs.
To see a list of collections supported by the service: ``` service.collections ``` This returns: ``` :networks, :ports, :subnets, :floating_ips, :routers, :lb_pools, :lb_members, :lb_health_monitors, :lb_vips, :vpn_services, :ike_policies, :ipsec_policies, :ipsec_site_connections, :rbac_policies, :security_groups, :security_group_rules ``` #### Example Request To request a collection of networks: ``` networks = service.networks ``` This returns in the following `Fog::OpenStack::Model`: ``` ] >, shared=true, status="ACTIVE", admin_state_up=true, tenant_id="a51fd915", provider_network_type="vlan", provider_physical_network=nil, provider_segmentation_id=nil, router_external=false >, , shared=false, status="ACTIVE", admin_state_up=true, tenant_id="f8b26a6032bc47718a7702233ac708b9", provider_network_type=nil, provider_physical_network=nil, provider_segmentation_id=nil, router_external=nil > ] > ``` To access the name of the first network: ``` networks.first.name ``` This will return: ``` "Public" ``` ## Examples Example code using Network can be found [here](https://github.com/fog/fog-openstack/tree/master/lib/fog/openstack/examples/network). ## Additional Resources * [OpenStack Network API](http://developer.openstack.org/api-ref-networking-v2.html) * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/nfv.md000066400000000000000000000105621476630434000163340ustar00rootroot00000000000000# NFV This document explains how to get started using NFV with fog-openstack. Please also refer to the [Getting Started with Fog and the OpenStack](getting_started.md) document. Tacker is an OpenStack service for NFV Orchestration with a general purpose VNF Manager to deploy and operate Virtual Network Functions (VNFs) and Network Services on an NFV Platform. It is based on ETSI MANO Architectural Framework. # OpenStack setup ## The catalog For the fog-openstack's introspection service to work, the corresponding service must be defined in the OpenStack catalog. ```bash openstack catalog show servicevm +-----------+-----------------------------------------+ | Field | Value | +-----------+-----------------------------------------+ | endpoints | regionOne | | | publicURL: http://172.16.0.21:8888/ | | | internalURL: http://172.16.0.21:8888/ | | | adminURL: http://172.16.0.21:8888/ | | | | | name | tacker | | type | servicevm | +-----------+-----------------------------------------+ ``` Depending on the OpenStack release, the NFV service might be installed but not defined yet in the catalog. In such case, you must add the service and corresponding endpoints to create the catalog entry: ```bash source ./stackrc openstack service create --name tacker --description "Tacker Project" servicevm openstack endpoint create --region regionOne tacker --publicurl http://example.com:8888 --internalurl http://example.com:8888 --adminurl http://example.com:8888 ``` # Work flow A usual work-flow might consist of: * Create vnfd * Deploy vnf using vnfd * Retrieve vnf and vnfd data For more details please refer to http://docs.openstack.org/developer/tacker/ Using 'irb', we start with authentication: ```ruby @user = "admin" @project = "admin" @password = "secret" @base_url = "http://keystone.example.com:5000/v3/auth/tokens" require 'rubygems' require 'fog/openstack' @connection_params = { :openstack_auth_url => @base_url, :openstack_username => @user, :openstack_api_key => @password, :openstack_project_name => @project, :openstack_domain_id => "default" } ``` ## Vnfd management ### Create vnfd ```ruby vnfd_data = {:attributes => {:vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_properties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.tiny\n\n network_interfaces:\n management:\n network: net_mgmt\n management: true\n pkt_in:\n network: net0\n pkt_out:\n network: net1\n\n placement_policy:\n availability_zone: nova\n\n auto-scaling: noop\n\n config:\n param0: key0\n param1: key1\n"}, :service_types => [{:service_type => "vnfd"}], :mgmt_driver => "noop", :infra_driver => "heat"} auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin","password" => "password"}} vnfd = Fog::NFV[:openstack].vnfds.create(:vnfd => vnfd_data, :auth => auth) ``` ### List vnfds ```ruby vnfds = Fog::NFV[:openstack].vnfds ``` ### Get vnfd ```ruby vnfd = Fog::NFV[:openstack].vnfds.last vnfd = Fog::NFV[:openstack].vnfds.get(vnfd.id) ``` ### Destroy vnfd ```ruby vnfd = Fog::NFV[:openstack].vnfds.last vnfd.destroy ``` ## Vnf management ### Create vnf using vnfd ```ruby vnfd = Fog::NFV[:openstack].vnfds.last vnf_data = {:vnfd_id => vnfd.id, :name => 'Test'} auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin","password" => "password"}} vnf = Fog::NFV[:openstack].vnfs.create(:vnf => vnf_data, :auth => auth) ``` ### List vnfs ```ruby vnfs = Fog::NFV[:openstack].vnfs ``` ### Get vnf ```ruby vnf = Fog::NFV[:openstack].vnfs.last vnf = Fog::NFV[:openstack].vnfs.get(vnf.id) ``` ### Update vnf ```ruby vnf = Fog::NFV[:openstack].vnfs.last vnf_data = {"attributes": {"config": "vdus:\n vdu1: \n\n"}} auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin","password" => "password"}} vnf = vnf.update(:vnf => vnf_data, :auth => auth) ``` ### Destroy vnf ```ruby vnf = Fog::NFV[:openstack].vnfs.last vnf.destroy ``` fog-openstack-1.1.5/docs/orchestration.md000066400000000000000000000351331476630434000204300ustar00rootroot00000000000000# OpenStack Orchestration The mission of the OpenStack Orchestration program is to create a human- and machine-accessible service for managing the entire lifecycle of infrastructure and applications within OpenStack clouds. ## Heat Heat is the main project in the OpenStack Orchestration program. It implements an orchestration engine to launch multiple composite cloud applications based on templates in the form of text files that can be treated like code. A native Heat template format is evolving, but Heat also endeavours to provide compatibility with the AWS CloudFormation template format, so that many existing CloudFormation templates can be launched on OpenStack. Heat provides both an OpenStack-native ReST API and a CloudFormation-compatible Query API. *Why ‘Heat’? It makes the clouds rise!* **How it works** * A Heat template describes the infrastructure for a cloud application in a text file that is readable and writable by humans, and can be checked into version control, diffed, &c. * Infrastructure resources that can be described include: servers, floating ips, volumes, security groups, users, etc. * Heat also provides an autoscaling service that integrates with Ceilometer, so you can include a scaling group as a resource in a template. * Templates can also specify the relationships between resources (e.g. this volume is connected to this server). This enables Heat to call out to the OpenStack APIs to create all of your infrastructure in the correct order to completely launch your application. * Heat manages the whole lifecycle of the application - when you need to change your infrastructure, simply modify the template and use it to update your existing stack. Heat knows how to make the necessary changes. It will delete all of the resources when you are finished with the application, too. * Heat primarily manages infrastructure, but the templates integrate well with software configuration management tools such as Puppet and Chef. The Heat team is working on providing even better integration between infrastructure and software. _Source: [OpenStack Wiki](https://wiki.openstack.org/wiki/Heat)_ # OpenStack Orchestration (Heat) Client [Full OpenStack Orchestration/Heat API Docs](http://developer.openstack.org/api-ref-orchestration-v1.html) ## Orchestration Service Get a handle on the Orchestration service: ```ruby service = Fog::OpenStack::Orchestration.new({ :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v2.0/tokens', # OpenStack Keystone endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_tenant => OPEN_STACK_TENANT, # Your tenant id :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional }) ``` We will use this `service` to interact with the Orchestration resources, `stack`, `event`, `resource`, and `template` Read more about the [Optional Connection Parameters](common/connection_params.md) ## Stacks Get a list of stacks you own: ```ruby service.stacks ``` This returns a list of stacks with minimum attributes, leaving other attributes empty ```ruby => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/stack4/0b8e4060-419b-416b-a927-097d4afbf26d", "rel"=>"self"}], notification_topics=nil, outputs=nil, parameters=nil, stack_name="stack4", stack_status="UPDATE_COMPLETE", stack_status_reason="Stack successfully updated", template_description=nil, timeout_mins=nil, creation_time="2014-08-27T21:25:56Z", updated_time="2015-01-30T20:10:43Z" >, ... ``` Create a new `stack` with a [Heat Template (HOT)](http://docs.openstack.org/developer/heat/template_guide/hot_guide.html) or an AWS CloudFormation Template (CFN): ```ruby raw_template = File.read(TEMPLATE_FILE) service.stacks.new.save({ :stack_name => "a_name_for_stack", :template => raw_template, :parameters => {"flavor" => "m1.small", "image" => "cirror"} }) ``` This returns a JSON blob filled with information about our new stack: ```ruby {"id"=>"53b35fbe-34f7-4837-b0f8-8863b7263b7d", "links"=>[{"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/a_name_for_stack/53b35fbe-34f7-4837-b0f8-8863b7263b7d", "rel"=>"self"}]} ``` We can get a reference to the stack using its `stack_name` and `id`: ```ruby stack = service.stacks.get("stack4", "0b8e4060-419b-416b-a927-097d4afbf26d") ``` This returns a stack with all attributes filled ```ruby => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/stack4/0b8e4060-419b-416b-a927-097d4afbf26d", "rel"=>"self"}], notification_topics=[], outputs=[], parameters={"AWS::StackId"=>"arn:openstack:heat::5d139d95546240748508b2a518aa5bef:stacks/stack4/0b8e4060-419b-416b-a927-097d4afbf26d", "AWS::Region"=>"ap-southeast-1", "AWS::StackName"=>"stack4"}, stack_name="stack4", stack_status="UPDATE_COMPLETE", stack_status_reason="Stack successfully updated", template_description="Simple template to deploy a single compute instance", timeout_mins=60, creation_time="2014-08-27T21:25:56Z", updated_time="2015-01-30T20:10:43Z" > ``` It can be also obtained through the details method of a simple stack object ```ruby stack.details ``` To update a stack while manipulating a Stack object from the Stack Collection: ```ruby heat_template = { "template": { "description": "Updated description" } } stack.save(heat_template) ``` `save` uses the `update_stack` request method, although it expects a Stack object as well: ```ruby heat_template = { "template": { "description": "Updated description" } } service.update_stack(stack, heat_template) ``` Alternatively a request only approach can be used, providing a stack id and name: ```ruby id = "49b83314-d341-468a-aef4-44bbccce251e" name = "stack_name" heat_template = { "template": { "description": "Other update description" } } service.update_stack(id, name, heat_template) ``` A stack knows about related `events`: ```ruby stack.events => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/a_name_for_stack/53b35fbe-34f7-4837-b0f8-8863b7263b7d/resources/my_instance/events/251", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/a_name_for_stack/53b35fbe-34f7-4837-b0f8-8863b7263b7d/resources/my_instance", "rel"=>"resource"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/a_name_for_stack/53b35fbe-34f7-4837-b0f8-8863b7263b7d", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_IN_PROGRESS", resource_status_reason="state changed", physical_resource_id=nil >, ``` A stack knows about related `resources`: ```ruby stack.resources => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_COMPLETE", updated_time="2014-09-12T20:44:06Z", required_by=[], resource_status_reason="state changed", resource_type="OS::Nova::Server" > ] > ``` You can get a stack's `template` ```ruby stack.template => #"", :headers=>{"Content-Type"=>"text/html; charset=UTF-8", "Content-Length"=>"0", "Date"=>"Wed, 21 Jan 2015 20:38:00 GMT"}, :status=>204, :reason_phrase=>"No Content", :remote_ip=>"10.8.96.4", :local_port=>59628, :local_address=>"10.17.68.186"}, @body="", @headers={"Content-Type"=>"text/html; charset=UTF-8", "Content-Length"=>"0", "Date"=>"Wed, 21 Jan 2015 20:38:00 GMT"}, @status=204, @remote_ip="10.8.96.4", @local_port=59628, @local_address="10.17.68.186"> ``` Reload any object by calling `reload` on it: ```ruby stacks.reload => ``` ## Events You can list `Events` of a `stack`: ```ruby stack.events => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance/events/15", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance", "rel"=>"resource"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_IN_PROGRESS", resource_status_reason="state changed", physical_resource_id=nil >, ``` `Event` can be got through corresponding `resource` ```ruby event = service.events.get(stack, resource, event_id) => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance/events/15", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance", "rel"=>"resource"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_IN_PROGRESS", resource_status_reason="state changed", physical_resource_id=nil > ``` An `event` knows about its associated `stack`: ```ruby event.stack => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"self"}], stack_status_reason="Stack create completed successfully", stack_name="progenerated", creation_time="2014-09-12T20:43:58Z", updated_time="2014-09-12T20:44:06Z" > ``` An `event` has an associated `resource`: ```ruby resource = event.resource => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_COMPLETE", updated_time="2014-09-12T20:44:06Z", required_by=[], resource_status_reason="state changed", resource_type="OS::Nova::Server" > ``` ## Resource `resources` might be nested: ```ruby service.resources.all(stack, {:nested_depth => 1}) => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9/resources/my_instance", "rel"=>"self"}, {"href"=>"http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"stack"}], logical_resource_id="my_instance", resource_status="CREATE_COMPLETE", updated_time="2014-09-12T20:44:06Z", required_by=[], resource_status_reason="state changed", resource_type="OS::Nova::Server" > ] > ``` A `resource` knows about its associated `stack`: ```ruby resource.stack => "http://10.8.96.4:8004/v1/5d139d95546240748508b2a518aa5bef/stacks/progenerated/0c9ee370-ef64-4a80-a6cc-65d2277caeb9", "rel"=>"self"}], stack_status_reason="Stack create completed successfully", stack_name="progenerated", creation_time="2014-09-12T20:43:58Z", updated_time="2014-09-12T20:44:06Z" > ``` Resource metadata is visible: ```ruby irb: resource.metadata => {} ``` A `resource's` template is visible (if one exists) ```ruby irb: resource.template => nil ``` ## Validation You can validate a template (either HOT or CFN) before using it: ```ruby service.templates.validate(:template => content) => ``` ## Cancel Update When the stack is updating, you can cancel the update: ```ruby # stack.stack_status == 'UPDATE_IN_PROGRESS' stack.cancel_update => nil ``` Then you can see the status changed to ROLLBACK_IN_PROGRESS: ```ruby stack = service.stacks.get(stack.stack_name, stack.id) stack.stack_status => "ROLLBACK_IN_PROGRESS" ``` fog-openstack-1.1.5/docs/planning.md000066400000000000000000000120001476630434000173360ustar00rootroot00000000000000# Planning This document explains how to get started using OpenStack Tuskar with Fog. ## Starting irb console Start by executing the following command: ```bash irb ``` Once `irb` has launched you need to require the Fog library. If using Ruby 1.8.x execute: ```ruby require 'rubygems' require 'fog/openstack' ``` If using Ruby 1.9.x execute: ```ruby require 'fog/openstack' ``` ## Create Service Next, create a connection to Tuskar: ```ruby service = Fog::OpenStack.new({ :service => :planning, # OpenStack Fog service :openstack_username => USERNAME, # Your OpenStack Username :openstack_api_key => PASSWORD, # Your OpenStack Password :openstack_auth_url => 'http://YOUR_OPENSTACK_ENDPOINT:PORT/v2.0/tokens' :connection_options => {} # Optional }) ``` Read more about the [Optional Connection Parameters](common/connection_params.md) ## Fog Abstractions Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface. ### Request Layer The `Fog::OpenStack::Planning.new` object supports a number of methods that wrap individual HTTP requests to the Tuskar API. To see a list of requests supported by the planning service: ```ruby service.requests ``` This returns: ```ruby [ :list_roles, :list_plans, :get_plan_templates, :get_plan, :patch_plan, :create_plan, :delete_plan, :add_role_to_plan, :remove_role_from_plan ] ``` #### Example Request To request a list of plans: ```ruby response = service.list_plans ``` This returns in the following `Excon::Response`: ```ruby # [ { "created_at"=>"2014-09-26T20:23:14.222815", "description"=>"Development testing cloud", "name"=>"dev-cloud", "parameters"=> [ { "default"=>"guest", "description"=>"The password for RabbitMQ", "hidden"=>true, "label"=>nil, "name"=>"compute-1 => =>RabbitPassword", "value"=>"secret-password" }, { "default"=>"default", "description"=>"description", "hidden"=>true, "label"=>nil, "name"=>"name", "value"=>"value" } ], "roles"=> [ { "description"=>"OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name"=>"compute", "uuid"=>"b7b1583c-5c80-481f-a25b-708ed4a39734", "version"=>1 } ], "updated_at"=>nil, "uuid"=>"53268a27-afc8-4b21-839f-90227dd7a001" } ], :headers=>{}, :status=>200 }, @body="", @headers={}, @status=nil, @remote_ip=nil, @local_port=nil, @local_address=nil > ``` To view the status of the response: ```ruby response.status ``` **Note**: Fog is aware of the valid HTTP response statuses for each request type. If an unexpected HTTP response status occurs, Fog will raise an exception. To view response headers: ```ruby response.headers ``` This will return hash similar to: ```ruby { "X-Account-Bytes-Used"=>"2563554", "Date"=>"Thu, 21 Feb 2013 21:57:02 GMT", "X-Account-Meta-Temp-Url-Key"=>"super_secret_key", "X-Timestamp"=>"1354552916.82056", "Content-Length"=>"0", "Content-Type"=>"application/json; charset=utf-8", "X-Trans-Id"=>"txe934924374a744c8a6c40dd8f29ab94a", "Accept-Ranges"=>"bytes", "X-Account-Container-Count"=>"7", "X-Account-Object-Count"=>"5" } ``` [//]: # (TODO: Specify URL to rubydoc.info when OpenStack Planning service is part of release and pages are built) To learn more about `Fog::OpenStack::Planning.new` request methods refer to [rdoc](http://rubydoc.info/gems/fog/Fog). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon). ### Model Layer Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors. Here is a summary of common model methods:
Method Description
create Accepts hash of attributes and creates object.
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
save Saves object.
Note: not all objects support updating object.
destroy Destroys object.
Note: this is a non-blocking call and object deletion might not be instantaneous.
reload Updates object with latest state from service.
attributes Returns a hash containing the list of model attributes and values.
identity Returns the identity of the object.
Note: This might not always be equal to object.id.
The remainder of this document details the model abstraction. ## Additional Resources * [Tuskar API](http://docs.openstack.org/developer/tuskar/) * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/shared_file_system.md000066400000000000000000000055531476630434000214200ustar00rootroot00000000000000# Shared File System (Manila) This document explains how to get started using OpenStack Shared File System (Manila) with Fog. It assumes you have read the [Getting Started with Fog and OpenStack](getting_started.md) document. ## Starting irb console Start by executing the following command: ``` irb ``` or if you use bundler for managing your gems: ``` bundle exec irb ``` Once `irb` has launched you need to require the Fog library by executing: ``` require 'fog/openstack' ``` ## Create Service Next, create a connection to the Shared File System Service: ``` service = Fog::OpenStack::SharedFileSystem.new( :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v3/auth/tokens', # OpenStack Keystone v3 endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_domain_name => OPEN_STACK_DOMAIN, # Your OpenStack Domain name :openstack_project_name => OPEN_STACK_PROJECT, # Your OpenStack Project name :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional ) ``` Read more about the [Optional Connection Parameters](common/connection_params.md) ## Fog Abstractions Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface. ### Request Layer The request abstraction maps directly to the [OpenStack Shared File System API](http://developer.openstack.org/api-ref/shared-file-systems). It provides the most efficient interface to the OpenStack Shared File System service. To see a list of requests supported by the service: ``` service.requests ``` #### Example Request To request a list of networks: ``` response = service.list_shares ``` To learn more about Shared File System request methods refer to [rdoc](http://www.rubydoc.info/gems/fog-openstack/Fog/SharedFileSystem/OpenStack/Real). ### Model Layer Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `persisted?`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors. To see a list of collections supported by the service: ``` service.collections ``` #### Example Request To request a collection of share networks: ``` networks = service.networks ``` ## Examples Example code using Shared File System can be found [here](https://github.com/fog/fog-openstack/tree/master/examples/share). ## Additional Resources * [OpenStack Shared File System API](http://developer.openstack.org/api-ref/shared-file-systems/) * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/storage.md000066400000000000000000000235651476630434000172160ustar00rootroot00000000000000# Storage This document explains how to get started using OpenStack Swift with Fog. ## Starting irb console Start by executing the following command: irb Once `irb` has launched you need to require the Fog library. If using Ruby 1.8.x execute: ```ruby require 'rubygems' require 'fog/openstack' ``` If using Ruby 1.9.x execute: ```ruby require 'fog/openstack' ``` ## Create Service Next, create a connection to Swift: ```ruby service = Fog::OpenStack::Storage.new({ :openstack_username => USERNAME, # Your OpenStack Username :openstack_api_key => PASSWORD, # Your OpenStack Password :openstack_auth_url => 'http://YOUR_OPENSTACK_ENDPOINT:PORT/v2.0/tokens', :connection_options => {} }) ``` Read more about the [Optional Connection Parameters](common/connection_params.md) Alternative regions are specified using the key `:openstack_region `. A list of regions available for Swift can be found by executing the following: ### Optional Service Parameters The Storage service supports the following additional parameters:
Key Description
:persistent If set to true, the service will use a persistent connection.
:openstack_service_name
:openstack_service_type
:openstack_tenant
:openstack_region
:openstack_temp_url_key
## Fog Abstractions Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface. ### Request Layer The Fog::Storage object supports a number of methods that wrap individual HTTP requests to the Swift API. To see a list of requests supported by the storage service: service.requests This returns: [:copy_object, :delete_container, :delete_object, :delete_multiple_objects, :delete_static_large_object, :get_container, :get_containers, :get_object, :get_object_http_url, :get_object_https_url, :head_container, :head_containers, :head_object, :put_container, :put_object, :put_object_manifest, :put_dynamic_obj_manifest, :put_static_obj_manifest, :post_set_meta_temp_url_key] #### Example Request To request a view account details: ```ruby response = service.head_containers ``` This returns in the following `Excon::Response`: ``` #"2563554", "Date"=>"Thu, 21 Feb 2013 21:57:02 GMT", "X-Account-Meta-Temp-Url-Key"=>"super_secret_key", "X-Timestamp"=>"1354552916.82056", "Content-Length"=>"0", "Content-Type"=>"application/json; charset=utf-8", "X-Trans-Id"=>"txe934924374a744c8a6c40dd8f29ab94a", "Accept-Ranges"=>"bytes", "X-Account-Container-Count"=>"7", "X-Account-Object-Count"=>"5"}, @status=204, @body=""> ``` To view the status of the response: ```ruby response.status ``` **Note**: Fog is aware of the valid HTTP response statuses for each request type. If an unexpected HTTP response status occurs, Fog will raise an exception. To view response headers: ```ruby response.headers ``` This will return: ``` {"X-Account-Bytes-Used"=>"2563554", "Date"=>"Thu, 21 Feb 2013 21:57:02 GMT", "X-Account-Meta-Temp-Url-Key"=>"super_secret_key", "X-Timestamp"=>"1354552916.82056", "Content-Length"=>"0", "Content-Type"=>"application/json; charset=utf-8", "X-Trans-Id"=>"txe934924374a744c8a6c40dd8f29ab94a", "Accept-Ranges"=>"bytes", "X-Account-Container-Count"=>"7", "X-Account-Object-Count"=>"5"} ``` To learn more about `Fog::Storage` request methods refer to [rdoc](http://rubydoc.info/gems/fog/fog/openstack/storage/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon). ### Model Layer Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors. Here is a summary of common model methods:
Method Description
create Accepts hash of attributes and creates object.
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
save Saves object.
Note: not all objects support updating object.
destroy Destroys object.
Note: this is a non-blocking call and object deletion might not be instantaneous.
reload Updates object with latest state from service.
attributes Returns a hash containing the list of model attributes and values.
identity Returns the identity of the object.
Note: This might not always be equal to object.id.
The remainder of this document details the model abstraction. **Note:** Fog sometimes refers to Swift containers as directories. ## List Directories To retrieve a list of directories: ```ruby service.directories ``` This returns a collection of `Fog::OpenStack::Storage::Directory` models: ## Get Directory To retrieve a specific directory: ```ruby service.directories.get "blue" ``` This returns a `Fog::OpenStack::Storage::Directory` instance: ## Create Directory To create a directory: ```ruby service.directories.create :key => 'backups' ``` ### Additional Parameters The `create` method also supports the following key values:
Key Description
:metadata Hash containing directory metadata.
## Delete Directory To delete a directory: ```ruby directory.destroy ``` **Note**: Directory must be empty before it can be deleted. ## Directory URL To get a directory's URL: ```ruby directory.public_url ``` ## List Files To list files in a directory: ```ruby directory.files ``` **Note**: File contents is not downloaded until `body` attribute is called. ## Upload Files To upload a file into a directory: ```ruby file = directory.files.create :key => 'space.jpg', :body => File.open "space.jpg" ``` **Note**: For files larger than 5 GB please refer to the [Upload Large Files](#upload-large-files) section. ### Additional Parameters The `create` method also supports the following key values:
Key Description
:content_type The content type of the object. Cloud Files will attempt to auto detect this value if omitted.
:access_control_allow_origin URLs can make Cross Origin Requests. Format is http://www.example.com. Separate URLs with a space. An asterisk (*) allows all. Please refer to CORS Container Headers for more information.
:origin The origin is the URI of the object's host.
:etag The MD5 checksum of your object's data. If specified, Cloud Files will validate the integrity of the uploaded object.
:metadata Hash containing file metadata.
## Upload Large Files Swift requires files larger than 5 GB (the Swift default limit) to be uploaded into segments along with an accompanying manifest file. All of the segments must be uploaded to the same container. ```ruby SEGMENT_LIMIT = 5368709119.0 # 5GB -1 BUFFER_SIZE = 1024 * 1024 # 1MB File.open(file_name) do |file| segment = 0 until file.eof? segment += 1 offset = 0 # upload segment to cloud files segment_suffix = segment.to_s.rjust(10, '0') service.put_object("my_container", "large_file/#{segment_suffix}", nil) do if offset <= SEGMENT_LIMIT - BUFFER_SIZE buf = file.read(BUFFER_SIZE).to_s offset += buf.size buf else '' end end end end # write manifest file service.put_object_manifest("my_container", "large_file", 'X-Object-Manifest' => "my_container/large_file/") ``` Segmented files are downloaded like ordinary files. See [Download Files](#download-files) section for more information. ## Download Files The most efficient way to download files from a private or public directory is as follows: ```ruby File.open('downloaded-file.jpg', 'w') do | f | directory.files.get("my_big_file.jpg") do | data, remaining, content_length | f.syswrite data end end ``` This will download and save the file in 1 MB chunks. The chunk size can be changed by passing the parameter `:chunk_size` into the `:connection_options` hash in the service constructor. **Note**: The `body` attribute of file will be empty if a file has been downloaded using this method. If a file object has already been loaded into memory, you can save it as follows: ```ruby File.open('germany.jpg', 'w') {|f| f.write(file_object.body) } ``` **Note**: This method is more memory intensive as the entire object is loaded into memory before saving the file as in the example above. ## File URL To get a file's URL: ```ruby file.public_url ``` ## Metadata You can access metadata as an attribute on `Fog::Storage::Rackspace::File`. ```ruby file.metadata[:environment] ``` File metadata is set when the file is saved: ```ruby file.save ``` Metadata is reloaded when directory or file is reloaded: ```ruby file.reload ``` ## Copy File Cloud Files supports copying files. To copy files into a container named "trip" with a name of "europe.jpg" do the following: ```ruby file.copy("trip", "europe.jpg") ``` To move or rename a file, perform a copy operation and then delete the old file: ```ruby file.copy("trip", "germany.jpg") file.destroy ``` ## Delete File To delete a file: ```ruby file.destroy ``` ## Additional Resources * [Swift API](http://docs.openstack.org/api/openstack-object-storage/1.0/content/index.html) * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/docs/workflow.md000066400000000000000000000065631476630434000174230ustar00rootroot00000000000000# OpenStack Workflow (Mistral) This document explains how to get started using OpenStack Workflow (Mistral) with Fog. It assumes you have read the [Getting Started with Fog and the OpenStack](getting_started.md) document. Fog uses the [OpenStack Mistral API](http://docs.openstack.org/mistral/latest/user/rest_api_v2.html). ## Workflow Service Get a handle for the Workflow service: ```ruby service = Fog::OpenStack::Workflow.new({ :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v2.0/tokens', # OpenStack Keystone endpoint :openstack_username => OPEN_STACK_USER, # Your OpenStack Username :openstack_tenant => OPEN_STACK_TENANT, # Your tenant id :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password :connection_options => {} # Optional }) ``` Read more about the [Optional Connection Parameters](common/connection_params.md) ## Executions A Workflow is a composition of one or more actions. To execute a workflow, we create an execution: ```ruby workflow = "tripleo.plan_management.v1.create_default_deployment_plan" input = { :container => 'default' } response = service.create_execution(workflow, input) ``` Execution status and result can be checked by: ```ruby workflow_execution_id = response.body["id"] response = mistral.get_execution(workflow_execution_id) state = response.body["state"] ``` To execute an individual action, we create an action execution: ```ruby input = { :container => 'default' } service.create_action_execution("tripleo.get_capabilities", input) ``` For actions, the result is returned when create_action_execution completes. ## Workflows ### Create a workflow ```ruby workflow_def = { :version => "2.0", :myworkflow => { :type => "direct", :description => "description1", :tasks => { :create_vm => { :description => "create vm" } } } } response = service.create_workflow(workflow_def) workflow_id = response.body["workflows"][0]["id"] ``` ### Validate a workflow before creating it ```ruby service.validate_workflow(workflow_def) ``` ### Update a workflow ```ruby workflow_def_new = { :version => "2.0", :myworkflow => { :type => "direct", :description => "description2", :tasks => { :create_vm => { :description => "create vm" } } } } service.update_workflow(workflow_def_new) ``` ### List workflow ```ruby service.list_workflows ``` ### Delete workflow ```ruby service.delete_workflow(workflow_id) ``` ## Other Mistral resources In addition to workflows, the following Mistral resources are also supported: * Workbooks * Actions * Executions * Tasks * Action Executions * Cron Triggers * Environments * Validations For examples on how to interact with these resources, please refer to https://github.com/fog/fog-openstack/tree/master/examples/workflow/workflow-examples.rb ## Additional Resources * [Mistral Wiki](https://wiki.openstack.org/wiki/Mistral) * [Mistral DSL v2](http://docs.openstack.org/mistral/ocata/dsl/dsl_v2.html) * [Mistral API v2](http://docs.openstack.org/mistral/latest/user/rest_api_v2.html) * [Mistral python client](https://github.com/openstack/python-mistralclient) Can be useful to see how to interact with the API. * [more resources and feedback](common/resources.md) fog-openstack-1.1.5/examples/000077500000000000000000000000001476630434000161035ustar00rootroot00000000000000fog-openstack-1.1.5/examples/compute/000077500000000000000000000000001476630434000175575ustar00rootroot00000000000000fog-openstack-1.1.5/examples/compute/basics.rb000066400000000000000000000031611476630434000213510ustar00rootroot00000000000000# OpenStack Compute (Nova) Example require 'fog/openstack' auth_url = "https://example.net/v2.0/tokens" username = 'admin@example.net' password = 'secret' tenant = 'My Compute Tenant' # String compute_client ||= ::Fog::Compute.new(:provider => :openstack, :openstack_api_key => password , :openstack_username => username , :openstack_auth_url => auth_url , :openstack_tenant => tenant) # Create VM # Options include metadata, availability zone, etc... begin vm = compute_client.servers.create(:name => 'lucky', :image_ref => 'fcd8f8a9', :flavor_ref => 4) rescue => e puts JSON.parse(e.response.body)['badRequest']['message'] end # Destroy VM vm = compute_client.servers.get(vm.id) # Retrieve previously created vm by UUID floating_ips = vm.all_addresses # fetch and release its floating IPs floating_ips.each do |address| compute_client.disassociate_address(uuid, address['ip']) compute_client.release_address(address['id']) end vm.destroy # Images available at tenant image_names = compute_client.images.map { |image| image['name'] } # Floating IP address pools available at tenant compute_client.addresses.get_address_pools # response.body #=> { 'name' => 'pool1' }, { 'name' => 'pool2' } # VNC console vm.console.body # returns VNC url # "console" => { # "url" => "http://vmvncserver:6080/vnc_auto.html?token=231", # "type" => "novnc" # } fog-openstack-1.1.5/examples/compute/block_device_mapping_v2.rb000066400000000000000000000014471476630434000246450ustar00rootroot00000000000000# OpenStack Compute (Nova) Example require 'fog/openstack' auth_url = "https://example.net/v2.0/tokens" username = 'admin@example.net' password = 'secret' tenant = 'My Compute Tenant' # String compute_client ||= ::Fog::OpenStack::Compute.new( :openstack_api_key => password, :openstack_username => username, :openstack_auth_url => auth_url, :openstack_tenant => tenant ) _vm = compute_client.servers.create( :name => name, :flavor_ref => flavor, :block_device_mapping_v2 => [ { :boot_index => 0, :device_name => "vda", :source_type => "volume", # Or "snapshot" :destination_type => "volume", :delete_on_termination => false, :uuid => cinder_uddi, } ] ) fog-openstack-1.1.5/examples/container_infra/000077500000000000000000000000001476630434000212445ustar00rootroot00000000000000fog-openstack-1.1.5/examples/container_infra/basics.rb000066400000000000000000000042301476630434000230340ustar00rootroot00000000000000# OpenStack Container Infra (Magnum) Example require 'fog/openstack' # Initialize a connection to the Magnum API params = { openstack_auth_url: 'https://example.net/v3/auth/tokens', openstack_username: 'username', openstack_api_key: 'password', openstack_project_name: 'magnum' } container_infra = Fog::ContainerInfra::OpenStack.new(params) # Get the Fedora Atomic image image = Fog::OpenStack::Image.new(params) unless image.images.map(&:name).include?("fedora-atomic-latest") puts "Couldn't find Fedora Atomic. Uploading to Glance..." fedora = image.images.create name: "fedora-atomic-latest", disk_format: "qcow2", visibility: 'public', container_format: 'bare', copy_from: 'https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2', properties: {'os_distro' => 'fedora-atomic'}.to_json fedora.wait_for { status == "active" } end # Create a cluster template for using Docker Swarm and Fedora Atomic params = { name: 'swarm-cluster-template', image_id: 'fedora-atomic-latest', keypair_id: 'YOUR_KEYPAIR_NAME', external_network_id: 'public', master_flavor_id: 'm1.small', flavor_id: 'm1.small', coe: 'swarm', docker_volume_size: 3, dns_nameserver: '8.8.8.8', tls_disabled: true } cluster_template = container_infra.cluster_templates.create(params) puts "Created cluster template #{cluster_template.name} (#{cluster_template.uuid})" # Create a swarm cluster and wait for it to build params = { name: 'swarm-cluster', cluster_template_id: 'swarm-cluster-template', master_count: 1, node_count: 1 } cluster = container_infra.clusters.create(params) start = Time.now puts "Building cluster #{cluster.name} (#{cluster.uuid})" cluster.wait_for { status != 'CREATE_IN_PROGRESS' } puts "Finished building #{cluster.name} in #{(Time.now - start).round} seconds. Status: #{cluster.status}." puts "More info: #{cluster.status_reason}" if cluster.status == 'CREATE_FAILED' fog-openstack-1.1.5/examples/event/000077500000000000000000000000001476630434000172245ustar00rootroot00000000000000fog-openstack-1.1.5/examples/event/basics.rb000066400000000000000000000007221476630434000210160ustar00rootroot00000000000000require 'fog/openstack' require 'time' auth_url = "http://10.0.0.101:5000/v2.0/tokens" username = 'admin' password = 'D78JVyRnzJG8j7Mb6fgpeUMp7' @connection_params = { :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, } puts "### SERVICE CONNECTION ###" event_service = Fog::OpenStack::Event.new(@connection_params) p event_service puts "### LIST EVENTS ###" p event_service.events.all fog-openstack-1.1.5/examples/identity/000077500000000000000000000000001476630434000177345ustar00rootroot00000000000000fog-openstack-1.1.5/examples/identity/basics.rb000066400000000000000000000034541476630434000215330ustar00rootroot00000000000000# OpenStack Identity Service (Keystone) Example require 'fog/openstack' require 'pp' auth_url = "https://example.net" username = 'admin@example.net' password = 'secret' tenant = 'admin' keystone = Fog::OpenStack::Identity.new :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_tenant => tenant # Optional, self-signed certs #:connection_options => { :ssl_verify_peer => false } # # Listing keystone tenants # keystone.tenants.each do |tenant| # pp tenant end # # List users # keystone.users.each do |user| # # ... pp user end # # Create a new tenant # tenant = keystone.tenants.create :name => 'rubiojr@example.net', :description => 'My foo tenant' # # Create a new user # user = keystone.users.create :name => 'rubiojr@example.net', :tenant_id => tenant.id, :password => 'rubiojr@example.net', :email => 'rubiojr@example.net' # Find the recently created tenant tenant = keystone.tenants.find { |t| t.name == 'rubiojr@example.net' } # Destroy the tenant tenant.destroy # Find the recently created user user = keystone.users.find { |u| u.name == 'rubiojr@example.net' } # Destroy the user user.destroy fog-openstack-1.1.5/examples/identity/basics_v3.rb000066400000000000000000000044311476630434000221370ustar00rootroot00000000000000# OpenStack Identity Service (Keystone) Example require 'fog/openstack' require 'pp' auth_url = "https://example.net:35357" username = 'admin@example.net' password = 'secret' project = 'admin' domain = 'Default' keystone = Fog::OpenStack::Identity.new :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_project_name => project, :openstack_domain_name => domain # Optional, self-signed certs #:connection_options => { :ssl_verify_peer => false } # # List keystone projects # keystone.projects.each do |project| # "http://example.net:35357/..."}, # parent_id=nil, # subtree=nil, # parents=nil # > # ... pp project end # # List users # keystone.users.each do |user| # "http://example.net:35357/..."}, # password=nil # > # ... pp user end # # Create a new tenant # project = keystone.projects.create :name => 'rubiojr@example.net', :description => 'My foo tenant' # # Create a new user # user = keystone.users.create :name => 'rubiojr@example.net', :default_project_id => project.id, :password => 'rubiojr@example.net', :email => 'rubiojr@example.net', :domain_id => 'Default' # Find the recently created tenant project = keystone.projects.find { |t| t.name == 'rubiojr@example.net' } # Destroy the tenant project.destroy # Find the recently created user user = keystone.users.find { |u| u.name == 'rubiojr@example.net' } # Destroy the user user.destroy fog-openstack-1.1.5/examples/image/000077500000000000000000000000001476630434000171655ustar00rootroot00000000000000fog-openstack-1.1.5/examples/image/upload-test-image.rb000066400000000000000000000056541476630434000230450ustar00rootroot00000000000000require 'securerandom' require 'rubygems/package' require 'zlib' require 'fog/openstack' # # Download CirrOS 0.3.0 image from launchpad (~6.5MB) to /tmp # and upload it to Glance (the OpenStack Image Service). # # You will need to source OpenStack credentials since the script # reads the following envionment variables: # # OS_PASSWORD # OS_USERNAME # OS_AUTH_URL # OS_TENANT_NAME # # Should work with Fog >= 1.9, ruby 1.8.7 and 2.0 # image_url = "https://launchpadlibrarian.net/83305869/cirros-0.3.0-x86_64-uec.tar.gz" image_out = File.open("/tmp/cirros-image-#{SecureRandom.hex}", 'wb') extract_path = "/tmp/cirros-#{SecureRandom.hex}-dir" ami = "#{extract_path}/cirros-0.3.0-x86_64-blank.img" aki = "#{extract_path}/cirros-0.3.0-x86_64-vmlinuz" ari = "#{extract_path}/cirros-0.3.0-x86_64-initrd" FileUtils.mkdir_p extract_path # Efficient image write puts "Downloading Cirros image..." streamer = lambda do |chunk, remaining_bytes, total_bytes| image_out.write chunk end Excon.get image_url, :response_block => streamer image_out.close puts "Image downloaded to #{image_out.path}" puts "Extracting image contents to #{extract_path}..." Gem::Package::TarReader.new(Zlib::GzipReader.open(image_out.path)).each do |entry| FileUtils.mkdir_p "#{extract_path}/#{File.dirname(entry.full_name)}" File.open "#{extract_path}/#{entry.full_name}", 'w' do |f| f.write entry.read end end image_service = Fog::OpenStack::Image.new :openstack_api_key => ENV['OS_PASSWORD'], :openstack_username => ENV["OS_USERNAME"], :openstack_auth_url => ENV["OS_AUTH_URL"] + "/tokens", :openstack_tenant => ENV["OS_TENANT_NAME"] puts "Uploading AKI..." aki = image_service.images.create :name => 'cirros-0.3.0-amd64-aki', :size => File.size(aki), :disk_format => 'aki', :container_format => 'aki', :location => aki puts "Uploading ARI..." ari = image_service.images.create :name => 'cirros-0.3.0-amd64-ari', :size => File.size(ari), :disk_format => 'ari', :container_format => 'ari', :location => ari puts "Uploading AMI..." image_service.images.create :name => 'cirros-0.3.0-amd64', :size => File.size(ami), :disk_format => 'ami', :container_format => 'ami', :location => ami, :properties => { 'kernel_id' => aki.id, 'ramdisk_id' => ari.id } fog-openstack-1.1.5/examples/introspection/000077500000000000000000000000001476630434000210035ustar00rootroot00000000000000fog-openstack-1.1.5/examples/introspection/basics.rb000066400000000000000000000032551476630434000226010ustar00rootroot00000000000000 require 'rubygems' require 'fog/openstack' # version >= 1.37 auth_url = "https://example.net:5000/v3/auth/tokens" username = 'admin@example.net' password = 'secret' project = 'admin' @connection_params = { :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_project_name => project, :openstack_domain_id => "default" } inspector = Fog::OpenStack::Introspection.new(@connection_params) # Introspection of an Ironic node ironic = Fog::OpenStack::Baremetal.new(@connection_params) nodes = ironic.list_nodes node1_uuid = nodes.body["nodes"][0]["uuid"] # Launch introspection inspector.create_introspection(node1_uuid) # Introspection status inspector.get_introspection(node1_uuid) # Abort introspection inspector.abort_introspection(node1_uuid) # Retrieve introspection data # Note: introspection must be finished and ended successfully inspector.get_introspection_details(node1_uuid) ## Introspection Rules # Create a set of rules rules = { "description" => "Successful Rule", "actions" => [ { "action" => "set-attribute", "path" => "/extra/rule_success", "value" => "yes" } ], "conditions" => [ { "field" => "memory_mb", "op" => "ge", "value" => 256 }, { "field" => "local_gb", "op" => "ge", "value" => 1 } ] } inspector.create_rules(rules) # List all rules set rules1 = inspector.list_rules # Show a rules set rules1_uuid = rules1[:body]["rules"][0]['uuid'] inspector.get_rules(rules1_uuid) # Delete a specific rules set inspector.delete_rules(rules1_uuid) # Destroys all rules sets inspector.delete_rules_all fog-openstack-1.1.5/examples/metric/000077500000000000000000000000001476630434000173665ustar00rootroot00000000000000fog-openstack-1.1.5/examples/metric/basics.rb000066400000000000000000000020721476630434000211600ustar00rootroot00000000000000require 'fog/openstack' require 'time' auth_url = "http://10.0.0.13:5000/v3/auth/tokens" username = 'admin' password = 'njXDF8bKr68RQsfbANvURzkmT' project = 'admin' @connection_params = { :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_project_name => project, :openstack_domain_id => "default" } puts "### SERVICE CONNECTION ###" metric = Fog::OpenStack::Metric.new(@connection_params) p metric puts "### RESOURCES ###" p metric.list_resources p metric.resources.all(details: true) p metric.resources.find_by_id("3c6c53c9-25c1-4aca-984d-a20c1926b499") p metric.get_resource_metric_measures("d1f84147-d4ef-465e-a679-265df36918ed", "disk.ephemeral.size", start: 0, stop: Time.now.iso8601, granularity: 300).body puts "### METRICS ###" p metric.metrics.all p metric.metrics.find_by_id("7feff2ca-2edd-4ea5-96d7-2cc5262bb504") p metric.get_metric_measures("d8e5e557-e3cc-41bd-9d87-dac3eedd0df7", start: 0, stop: Time.now.iso8601, granularity: 300).body puts "### END ###" fog-openstack-1.1.5/examples/network/000077500000000000000000000000001476630434000175745ustar00rootroot00000000000000fog-openstack-1.1.5/examples/network/network_add_port.rb000066400000000000000000000020001476630434000234560ustar00rootroot00000000000000require 'fog/openstack' # Add additional port to an Openstack node def create_virtual_address_pairing(username, password, auth_url, tenant, device_id, device_ip_address, network_id) network_driver = Fog::Network.new(:provider => :openstack, :openstack_api_key => password, :openstack_username => username, :openstack_auth_url => auth_url, :openstack_tenant => tenant) virtual_ip_address = network_driver.create_port(network_id) server_nics = network_driver.list_ports('device_id' => device_id).data[:body]['ports'] port = (server_nics.select do |network_port| network_port['mac_address'] == server.attributes['macaddress'] end).first network_driver.update_port(port['id'], :allowed_address_pairs => [{:ip_address => device_ip_address}, {:ip_address => virtual_ip_address}]) end fog-openstack-1.1.5/examples/network/network_rbac.rb000066400000000000000000000037731476630434000226130ustar00rootroot00000000000000require 'fog/openstack' require 'pp' # # Creates a private network and shares it with another project via RBAC policy # # Needs to be in an environment where keystone v3 is available # # You will need to source OpenStack credentials since the script # reads the following envionment variables: # # OS_AUTH_URL # OS_PASSWORD # OS_USERNAME # OS_USER_DOMAIN_NAME # OS_PROJECT_NAME # OS_REGION_NAME # # optionally disable SSL verification # SSL_VERIFY=false auth_options = { :openstack_auth_url => "#{ENV['OS_AUTH_URL']}/auth/tokens", :openstack_api_key => ENV['OS_PASSWORD'], :openstack_username => ENV['OS_USERNAME'], :openstack_domain_name => ENV['OS_USER_DOMAIN_NAME'], :openstack_project_name => ENV['OS_PROJECT_NAME'], :openstack_region => ENV['OS_REGION_NAME'], :connection_options => {:ssl_verify_peer => ENV['SSL_VERIFY'] != 'false'} } identity_service = Fog::OpenStack::Identity::V3.new(auth_options) network_service = Fog::OpenStack::Network.new(auth_options) own_project = identity_service.projects.select { |p| p.name == ENV['OS_PROJECT_NAME'] }.first other_project = identity_service.projects.select { |p| p.name != ENV['OS_PROJECT_NAME'] }.first puts "Create network in #{own_project.name}" foonet = network_service.networks.create(:name => 'foo-net23', :tenant_id => own_project.id) puts "Share network with #{other_project.name}" rbac = network_service.rbac_policies.create( :object_type => 'network', :object_id => foonet.id, :tenant_id => own_project.id, :target_tenant => other_project.id, :action => 'access_as_shared' ) puts "Get RBAC policy" rbac = network_service.rbac_policies.find_by_id(rbac.id) pp rbac puts "Change share to own project" rbac.target_tenant = own_project.id rbac.save puts "Get network and see that it is now shared" foonet = network_service.networks.get(foonet.id) pp foonet puts "Remove the share via RBAC" rbac.destroy puts "Get network and see that it is no longer shared" foonet.reload pp foonet foonet.destroy fog-openstack-1.1.5/examples/network/network_subnets_routers.rb000066400000000000000000000043601476630434000251430ustar00rootroot00000000000000require 'fog/openstack' # # Quantum demo # # Create some routers, networks and subnets for # a couple of tenants. # # Needs Fog >= 1.11.0 # Needs OpenStack credentials in ~/.fog # def create_tenant_network( tenant_name, external_net, router_name = 'router1', subnet_range = '10.0.0.0/21', subnet_gateway = '10.0.0.1', private_network_name = 'private' ) network = Fog::OpenStack::Network.new id = Fog::Identity[:openstack] tenant = id.tenants.find { |t| t.name == tenant_name } # Create a router for the tenant router = network.routers.create :name => router_name, :tenant_id => tenant.id, :external_gateway_info => { 'network_id' => external_net.id } # Create a private network for the tenant net = network.networks.create :name => private_network_name, :tenant_id => tenant.id # Create a subnet for the previous network and associate it # with the tenant subnet = network.subnets.create :name => 'net_10', :network_id => net.id, :ip_version => 4, :gateway_ip => subnet_gateway, :cidr => subnet_range, :tenant_id => tenant.id, :enable_dhcp => true network.add_router_interface router.id, subnet.id end # Create a public shared network public_net = network.networks.create :name => 'nova', :router_external => true # Create the public subnet public_subnet = network.subnets.create :name => 'floating_ips_net', :network_id => public_net.id, :ip_version => 4, :cidr => '1.2.3.0/24', :enable_dhcp => false # Create tenant networks create_tenant_network 'admin@example.net', public_net create_tenant_network 'demo@example.net', public_net fog-openstack-1.1.5/examples/planning/000077500000000000000000000000001476630434000177115ustar00rootroot00000000000000fog-openstack-1.1.5/examples/planning/basics.rb000066400000000000000000000015771476630434000215140ustar00rootroot00000000000000# OpenStack Planning Service (Tuskar) Example require 'fog/openstack' require 'pp' auth_url = "https://example.net/v2.0/tokens" username = 'admin@example.net' password = 'secret' tenant = 'My Compute Tenant' # String planning ||= ::Fog::OpenStack.new( :service => :planning, :openstack_api_key => password, :openstack_username => username, :openstack_auth_url => auth_url, :openstack_tenant => tenant ) pp planning # # Listing of Tuskar roles # roles = planning.roles.each do |role| pp role end # # Listing of Tuskar plans # plans = planning.plans.each do |plan| pp plan end # # Creating new Tuskar plan # plan = planning.plans.new({ :name => 'New Plan Name', :description => 'New Plan Description' }) pp plan # # Assign role to plan # role_uuid = roles.first.uuid plan.add_role(role_uuid) # # Output Heat templates for plan # pp plan.templates fog-openstack-1.1.5/examples/shared_file_system/000077500000000000000000000000001476630434000217545ustar00rootroot00000000000000fog-openstack-1.1.5/examples/shared_file_system/basics.rb000066400000000000000000000033601476630434000235470ustar00rootroot00000000000000require 'fog/openstack' require 'pp' # # Creates a share network and a share # # Needs to be in an environment where keystone v3 is available # # You will need to source OpenStack credentials since the script # reads the following envionment variables: # # OS_AUTH_URL # OS_PASSWORD # OS_USERNAME # OS_USER_DOMAIN_NAME # OS_PROJECT_NAME # OS_REGION_NAME # # optionally disable SSL verification # SSL_VERIFY=false auth_options = { :openstack_auth_url => "#{ENV['OS_AUTH_URL']}/auth/tokens", :openstack_api_key => ENV['OS_PASSWORD'], :openstack_username => ENV['OS_USERNAME'], :openstack_domain_name => ENV['OS_USER_DOMAIN_NAME'], :openstack_project_name => ENV['OS_PROJECT_NAME'], :openstack_region => ENV['OS_REGION_NAME'], :connection_options => {:ssl_verify_peer => ENV['SSL_VERIFY'] != 'false'} } network_service = Fog::OpenStack::Network.new(auth_options) share_service = Fog::OpenStack::SharedFileSystem.new(auth_options) net = network_service.networks.first raise 'no network exists' if net.nil? puts "Create share network in #{net.name}" share_network = share_service.networks.create( :neutron_net_id => net.id, :neutron_subnet_id => net.subnets.first.id, :name => 'fog_share_net' ) pp share_network puts 'Create share' example_share = share_service.shares.create( :share_proto => 'NFS', :size => 1, :name => 'fog_share', :share_network_id => share_network.id ) pp example_share puts 'Create snapshot' example_snap = share_service.snapshots.create( :share_id => example_share.id, :name => 'fog_share_snapshot' ) pp example_snap puts 'Removing snapshot, share and share network' example_snap.destroy example_share.destroy share_network.destroy fog-openstack-1.1.5/examples/storage/000077500000000000000000000000001476630434000175475ustar00rootroot00000000000000fog-openstack-1.1.5/examples/storage/set-account-quota.rb000066400000000000000000000042201476630434000234460ustar00rootroot00000000000000require 'fog/openstack' require 'pp' # # This example sets the account quota (in bytes) for the tenant demo@test.lan # using an admin account (admin has the reseller user role). # # Uses the account impersonation feature recently added to the # OpenStack Storage service in Fog (See https://github.com/fog/fog/pull/1632). # # Should be available in Fog 1.10.0+1. # # Setting account quotas is only supported in Swift 1.8.0+ # using the brand new account_quota middleware introduced in # OpenStack Grizzly (currently unreleased as of 2013/04/03). # # https://github.com/openstack/swift/blob/master/swift/common/middleware/account_quotas.py # auth_url = 'https://identity.test.lan/v2.0/tokens' user = 'admin@test.lan' password = 'secret' Excon.defaults[:ssl_verify_peer] = false # # We are going to use the Identity (Keystone) service # to retrieve the list of tenants available and find # the tenant we want to set the quotas for. # id = Fog::OpenStack::Identity.new :openstack_auth_url => auth_url, :openstack_username => user, :openstack_api_key => password # # Storage service (Swift) # st = Fog::OpenStack::Storage.new :openstack_auth_url => auth_url, :openstack_username => user, :openstack_api_key => password id.tenants.each do |t| # We want to set the account quota for tenant demo@test.lan next unless t.name == 'demo@test.lan' # We've found the tenant, impersonate the account # (the account prefix AUTH_ may be different for you, double check it). puts "Changing account to #{t.name}" st.change_account "AUTH_#{t.id}" # Now we're adding the required header to the demo@test.lan # tenant account, limiting the account bytes to 1048576 (1MB) # # Uploading more than 1MB will return 413: Request Entity Too Large st.request :method => 'POST', :headers => { 'X-Account-Meta-Quota-Bytes' => '1048576' } # We can list the account details to verify the new # header has been added pp st.request :method => 'HEAD' end # Restore the account we were using initially (admin@test.lan) st.reset_account_name fog-openstack-1.1.5/examples/volume/000077500000000000000000000000001476630434000174125ustar00rootroot00000000000000fog-openstack-1.1.5/examples/volume/backups.rb000066400000000000000000000020031476630434000213620ustar00rootroot00000000000000require 'fog/openstack' require 'fog/openstack/workflow/v2' auth_url = "http://192.0.2.1:5000/v3/auth/tokens" username = "admin" password = "1b1d81f7e25b53e497246b168971823c5754f395" project = "admin" @connection_params = { :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_project_name => project, :openstack_domain_id => "default", } cinder = Fog::OpenStack::Volume.new(@connection_params) puts "INFO: create backup of existing volume named test" response = cinder.create_backup({:name => 'test-backup', :volume_id => '82fe2ad5-43a3-4c2b-8464-e57b138ea81c'}) puts response.body puts "INFO: list backups" backups = cinder.backups puts "INFO: get details of existing backup" backup_id = backups[0].id backup = cinder.backups.get(backup_id) puts "INFO: restore backup" response = backup.restore('82fe2ad5-43a3-4c2b-8464-e57b138ea81c') puts response.body puts "INFO: delete backup" backup.destroy fog-openstack-1.1.5/examples/workflow/000077500000000000000000000000001476630434000177555ustar00rootroot00000000000000fog-openstack-1.1.5/examples/workflow/workflow-examples.rb000066400000000000000000000171701476630434000237760ustar00rootroot00000000000000require 'fog/openstack' require 'fog/openstack/workflow/v2' auth_url = "http://192.0.2.1:5000/v3/auth/tokens" username = "admin" password = "1b1d81f7e25b53e497246b168971823c5754f395" project = "admin" @connection_params = { :openstack_auth_url => auth_url, :openstack_username => username, :openstack_api_key => password, :openstack_project_name => project, :openstack_domain_id => "default", } mistral = Fog::OpenStack::Workflow.new(@connection_params) puts "INFO: create_execution" workflow = "tripleo.plan_management.v1.create_default_deployment_plan" input = { :container => 'default' } response = mistral.create_execution(workflow, input) puts response.body state = response.body["state"] workflow_execution_id = response.body["id"] puts "INFO: state #{state} execution_id #{workflow_execution_id}" while state == "RUNNING" sleep 5 response = mistral.get_execution(workflow_execution_id) state = response.body["state"] workflow_execution_id = response.body["id"] puts "INFO: state #{state} execution_id #{workflow_execution_id}" end puts response.body puts "INFO: list_executions" response = mistral.list_executions puts response.body puts "INFO: update_execution" response = mistral.update_execution(workflow_execution_id, "description", "changed description") puts response.body puts "INFO: list_tasks #{workflow_execution_id}" response = mistral.list_tasks(workflow_execution_id) task_ex_id = response.body["tasks"][0]["id"] puts response.body puts "INFO: get_task #{task_ex_id}" response = mistral.get_task(task_ex_id) puts response.body puts "INFO: rerun_task #{task_ex_id}" response = mistral.rerun_task(task_ex_id) puts response.body puts "INFO: delete_execution" response = mistral.delete_execution(workflow_execution_id) puts response.body puts "INFO: create_action_execution" input = { :container => 'default' } response = mistral.create_action_execution("tripleo.get_capabilities", input) puts response.body puts "INFO: list_action_executions" response = mistral.list_action_executions puts response.body puts "INFO: get_action_execution" execution_id = response.body["id"] response = mistral.get_action_execution(execution_id) puts response.body puts "INFO: create_workbook" workbook_def = { :version => "2.0", :name => "workbook name", :description => "workbook description", } response = mistral.create_workbook(workbook_def) workbook_name = response.body["name"] puts response.body puts "INFO: get_workbook" response = mistral.get_workbook(workbook_name) puts response.body puts "INFO: list_workbooks" response = mistral.list_workbooks puts response.body puts "INFO: update_workbook" workbook_def = { :version => "2.0", :name => "workbook name", :description => "workbook description2", } response = mistral.update_workbook(workbook_def) puts response.body puts "INFO: get_workbook2" response = mistral.get_workbook(workbook_name) puts response.body puts "INFO: validate_workbook" response = mistral.validate_workbook(workbook_def) puts response.body puts "INFO: delete_workbook" response = mistral.delete_workbook(workbook_name) puts response.body puts "INFO: create_workflow" workflow_def = { :version => "2.0", :myworkflow => { :type => "direct", :description => "description1", :tasks => { :create_vm => { :description => "create vm" } } } } response = mistral.create_workflow(workflow_def) workflow_id = response.body["workflows"][0]["id"] puts response.body puts "INFO: get_workflow #{workflow_id}" response = mistral.get_workflow(workflow_id) puts response.body puts "INFO: list_workflows" response = mistral.list_workflows puts response.body puts "INFO: list_workflows with params" params = { :limit => 1 } response = mistral.list_workflows(params) perm_workflow_id = response.body["workflows"][0]["id"] puts response.body puts "INFO: update_workflow" workflow_def = { :version => "2.0", :myworkflow => { :type => "direct", :description => "description2", :tasks => { :create_vm => { :description => "create vm" } } } } response = mistral.update_workflow(workflow_def) puts response.body puts "INFO: get_workflow2" response = mistral.get_workflow(workflow_id) puts response.body puts "INFO: validate_workflow" response = mistral.validate_workflow(workflow_def) puts response.body puts "INFO: delete_workflow #{workflow_id}" response = mistral.delete_workflow(workflow_id) puts response.body puts "INFO: create_action" action_def = { :version => "2.0", :myaction => { :input => ['execution_id'], :base => "std.email", "base-input" => { :to_addrs => ['admin@mywebsite.org'], :subject => "subject1", :body => "body1", :from_addr => "mistral@openstack.org", :smtp_server => "smtp.test.com", :smtp_password => "secret" } } } response = mistral.create_action(action_def) puts response.body puts "INFO: get_action" action_name = "myaction" response = mistral.get_action(action_name) puts response.body puts "INFO: list_actions" response = mistral.list_actions puts response.body puts "INFO: list_actions with params" params = { :limit => 1 } response = mistral.list_actions(params) puts response.body puts "INFO: update_action" action_def = { :version => "2.0", :myaction => { :input => ['execution_id'], :base => "std.email", "base-input" => { :to_addrs => ['admin@mywebsite.org'], :subject => "subject updated", :body => "body1", :from_addr => "mistral@openstack.org", :smtp_server => "smtp.test.com", :smtp_password => "secret" } } } response = mistral.update_action(action_def) puts response.body puts "INFO: get_action2" response = mistral.get_action(action_name) puts response.body puts "INFO: validate_action" response = mistral.validate_action(action_def) puts response.body puts "INFO: delete_action" response = mistral.delete_action(action_name) puts response.body puts "INFO: create_cron_trigger #{perm_workflow_id}" cron_name = "mycron" workflow_input = { "container" => "test1" } response = mistral.create_cron_trigger(cron_name, perm_workflow_id, workflow_input) puts response.body puts "INFO: get_cron_trigger" response = mistral.get_cron_trigger(cron_name) puts response.body puts "INFO: list_cron_triggers" response = mistral.list_cron_triggers puts response.body puts "INFO: delete_cron_trigger" response = mistral.delete_cron_trigger(cron_name) puts response.body puts "INFO: create_environment" environment_def = { "name" => "environment-1", "variables" => { "var1" => "value1", "var2" => "value2" } } response = mistral.create_environment(environment_def) puts response.body puts "INFO: get_environment" environment_name = environment_def["name"] response = mistral.get_environment(environment_name) puts response.body puts "INFO: list_environments" response = mistral.list_environments puts response.body puts "INFO: update_environment" environment_def = { "name" => "environment-1", "variables" => { "var1" => "value3", "var2" => "value4" } } response = mistral.update_environment(environment_def) puts response.body puts "INFO: get_environment2" response = mistral.get_environment(environment_name) puts response.body puts "INFO: delete_environment" response = mistral.delete_environment(environment_name) puts response.body # # Services api is unsupported atm. Next call will fail. # puts "INFO: list_services" response = mistral.list_services puts response.body fog-openstack-1.1.5/fog-openstack.gemspec000066400000000000000000000026761476630434000204050ustar00rootroot00000000000000# coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'fog/openstack/version' Gem::Specification.new do |spec| spec.name = "fog-openstack" spec.version = Fog::OpenStack::VERSION spec.authors = ["Matt Darby"] spec.email = ["matt.darby@rackspace.com"] spec.summary = %q{OpenStack fog provider gem} spec.description = %q{OpenStack fog provider gem.} spec.homepage = "https://github.com/fog/fog-openstack" spec.license = "MIT" spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.required_ruby_version = '>= 2.2.0' spec.add_dependency 'fog-core', '~> 2.1' spec.add_dependency 'fog-json', '>= 1.0' spec.add_development_dependency 'bundler' spec.add_development_dependency 'coveralls' spec.add_development_dependency "mime-types" spec.add_development_dependency "mime-types-data" spec.add_development_dependency 'minitest' spec.add_development_dependency 'pry-byebug' spec.add_development_dependency 'rake', '>= 12.3.3' spec.add_development_dependency 'rubocop' spec.add_development_dependency 'shindo', '~> 0.3' spec.add_development_dependency 'vcr' spec.add_development_dependency 'webmock', '~> 3.16.2' end fog-openstack-1.1.5/lib/000077500000000000000000000000001476630434000150335ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/000077500000000000000000000000001476630434000156065ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack.rb000066400000000000000000000131711476630434000201250ustar00rootroot00000000000000require 'fog/core' require 'fog/json' module Fog module OpenStack require 'fog/openstack/auth/token' autoload :VERSION, 'fog/openstack/version' autoload :Core, 'fog/openstack/core' autoload :Errors, 'fog/openstack/errors' autoload :Baremetal, 'fog/openstack/baremetal' autoload :Compute, 'fog/openstack/compute' autoload :ContainerInfra, 'fog/openstack/container_infra' autoload :DNS, 'fog/openstack/dns' autoload :Event, 'fog/openstack/event' autoload :Identity, 'fog/openstack/identity' autoload :Image, 'fog/openstack/image' autoload :Introspection, 'fog/openstack/introspection' autoload :KeyManager, 'fog/openstack/key_manager' autoload :Metering, 'fog/openstack/metering' autoload :Metric, 'fog/openstack/metric' autoload :Monitoring, 'fog/openstack/monitoring' autoload :Network, 'fog/openstack/network' autoload :NFV, 'fog/openstack/nfv' autoload :Orchestration, 'fog/openstack/orchestration' autoload :OrchestrationUtil, 'fog/openstack/orchestration/util/recursive_hot_file_loader' autoload :Planning, 'fog/openstack/planning' autoload :SharedFileSystem, 'fog/openstack/shared_file_system' autoload :Storage, 'fog/openstack/storage' autoload :Workflow, 'fog/openstack/workflow' autoload :Volume, 'fog/openstack/volume' extend Fog::Provider service(:baremetal, 'Baremetal') service(:compute, 'Compute') service(:container_infra, 'ContainerInfra') service(:dns, 'DNS') service(:event, 'Event') service(:identity, 'Identity') service(:image, 'Image') service(:introspection, 'Introspection') service(:key, 'KeyManager') service(:metering, 'Metering') service(:metric, 'Metric') service(:monitoring, 'Monitoring') service(:network, 'Network') service(:nfv, 'NFV') service(:orchestration, 'Orchestration') service(:planning, 'Planning') service(:shared_file_system, 'SharedFileSystem') service(:storage, 'Storage') service(:volume, 'Volume') service(:workflow, 'Workflow') @token_cache = {} class << self attr_accessor :token_cache end def self.clear_token_cache Fog::OpenStack.token_cache = {} end def self.endpoint_region?(endpoint, region) region.nil? || endpoint['region'] == region end def self.get_supported_version(supported_versions, uri, auth_token, connection_options = {}) supported_version = get_version(supported_versions, uri, auth_token, connection_options) version = supported_version['id'] if supported_version version_raise(supported_versions) if version.nil? version end def self.get_supported_version_path(supported_versions, uri, auth_token, connection_options = {}) supported_version = get_version(supported_versions, uri, auth_token, connection_options) link = supported_version['links'].find { |l| l['rel'] == 'self' } if supported_version path = URI.parse(link['href']).path if link version_raise(supported_versions) if path.nil? path.chomp '/' end def self.get_supported_microversion(supported_versions, uri, auth_token, connection_options = {}) supported_version = get_version(supported_versions, uri, auth_token, connection_options) supported_version['version'] if supported_version end # CGI.escape, but without special treatment on spaces def self.escape(str, extra_exclude_chars = '') str.gsub(/([^a-zA-Z0-9_.-#{extra_exclude_chars}]+)/) do '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase end end def self.get_version(supported_versions, uri, auth_token, connection_options = {}) version_cache = "#{uri}#{supported_versions}" return @version[version_cache] if @version && @version[version_cache] # To allow version discovery we need a "version less" endpoint path = uri.path.gsub(/\/v([1-9]+\d*)(\.[1-9]+\d*)*.*$/, '/') url = "#{uri.scheme}://#{uri.host}:#{uri.port}#{path}" connection = Fog::Core::Connection.new(url, false, connection_options) response = connection.request( :expects => [200, 204, 300], :headers => {'Content-Type' => 'application/json', 'Accept' => 'application/json', 'X-Auth-Token' => auth_token}, :method => 'GET' ) body = Fog::JSON.decode(response.body) @version = {} unless @version @version[version_cache] = extract_version_from_body(body, supported_versions) end def self.extract_version_from_body(body, supported_versions) versions = [] unless body['versions'].nil? || body['versions'].empty? versions = body['versions'].kind_of?(Array) ? body['versions'] : body['versions']['values'] end # Some version API would return single endpoint rather than endpoints list, try to get it via 'version'. unless body['version'].nil? or versions.length != 0 versions = [body['version']] end version = nil # order is important, preferred status should be first %w(CURRENT stable SUPPORTED DEPRECATED).each do |status| version = versions.find { |x| x['id'].match(supported_versions) && (x['status'] == status) } break if version end version end def self.version_raise(supported_versions) raise Fog::OpenStack::Errors::ServiceUnavailable, "OpenStack service only supports API versions #{supported_versions.inspect}" end end end fog-openstack-1.1.5/lib/fog/openstack/000077500000000000000000000000001476630434000175755ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/auth/000077500000000000000000000000001476630434000205365ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/auth/catalog.rb000066400000000000000000000035261476630434000225030ustar00rootroot00000000000000module Fog module OpenStack module Auth module Catalog attr_reader :payload class CatalogError < RuntimeError; end class EndpointError < RuntimeError; end class ServiceTypeError < RuntimeError; end def initialize(payload) @payload = payload end def get_endpoint_url(names, interfaces, region = nil) # TODO: Inject OpenStack Service Types Authority names_list = if names.kind_of?(String) [names] else names end entries = get_by_type(names_list) raise ServiceTypeError, 'No endpoint match' if entries.empty? interfaces_list = if interfaces.kind_of?(String) [interfaces] else interfaces end list = [] interfaces_list.each do |interface| val = get_endpoint(entries, interface, region) list << val if val end raise EndpointError, 'No endpoint found' if list.empty? list[0] end private def get_by_type(names) raise CatalogError, 'Empty content' unless @payload @payload.select do |e| names.include?(e['type']) end end def get_endpoint(entries, interface, region) list = [] entries.each do |type| next unless type.key?('endpoints') type['endpoints'].each do |endpoint| list << endpoint_url(endpoint, interface) if endpoint_match?(endpoint, interface, region) end end raise EndpointError, 'Multiple endpoints found' if list.size > 1 list[0] end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/catalog/000077500000000000000000000000001476630434000221505ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/auth/catalog/v2.rb000066400000000000000000000010121476630434000230160ustar00rootroot00000000000000require 'fog/openstack/auth/catalog' module Fog module OpenStack module Auth module Catalog class V2 include Fog::OpenStack::Auth::Catalog def endpoint_match?(endpoint, interface, region) if endpoint.key?("#{interface}URL") true unless !region.nil? && endpoint['region'] != region end end def endpoint_url(endpoint, interface) endpoint["#{interface}URL"] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/catalog/v3.rb000066400000000000000000000007701476630434000230310ustar00rootroot00000000000000require 'fog/openstack/auth/catalog' module Fog module OpenStack module Auth module Catalog class V3 include Fog::OpenStack::Auth::Catalog def endpoint_match?(endpoint, interface, region) if endpoint['interface'] == interface true unless !region.nil? && endpoint['region'] != region end end def endpoint_url(endpoint, _) endpoint['url'] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/name.rb000066400000000000000000000027721476630434000220130ustar00rootroot00000000000000module Fog module OpenStack module Auth class CredentialsError < RuntimeError; end module Domain attr_accessor :domain def identity data = {} if !id.nil? data.merge!(to_h(:id)) elsif !name.nil? && !domain.nil? data.merge!(to_h(:name)) data[:domain] = @domain.identity else raise Fog::OpenStack::Auth::CredentialsError, "#{self.class}: An Id, or a name with its domain, must be provided" end data end end Name = Struct.new(:id, :name) class Name def identity return to_h(:id) unless id.nil? return to_h(:name) unless name.nil? raise Fog::OpenStack::Auth::CredentialsError, "#{self.class}: No available id or name" end def to_h(var) {var => send(var).to_s} end end class DomainScope < Name def identity {:domain => super} end end class ProjectScope < Name include Fog::OpenStack::Auth::Domain def identity {:project => super} end end class User < Name include Fog::OpenStack::Auth::Domain attr_accessor :password def identity data = super raise CredentialsError, "#{self.class}: No password available" if password.nil? data.merge!(to_h(:password)) {:user => data} end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/token.rb000066400000000000000000000042141476630434000222040ustar00rootroot00000000000000require 'fog/openstack/auth/token/v2' require 'fog/openstack/auth/token/v3' require 'fog/openstack/auth/catalog/v2' require 'fog/openstack/auth/catalog/v3' module Fog module OpenStack module Auth module Token attr_reader :catalog, :expires, :tenant, :token, :user, :data class ExpiryError < RuntimeError; end class StandardError < RuntimeError; end class URLError < RuntimeError; end def self.build(auth, options) if auth[:openstack_identity_api_version] =~ /(v)*2(\.0)*/i || auth[:openstack_tenant_id] || auth[:openstack_tenant] Fog::OpenStack::Auth::Token::V2.new(auth, options) else Fog::OpenStack::Auth::Token::V3.new(auth, options) end end def initialize(auth, options) raise URLError, 'No URL provided' if auth[:openstack_auth_url].nil? || auth[:openstack_auth_url].empty? @creds = { :data => build_credentials(auth), :uri => URI.parse(auth[:openstack_auth_url]) } response = authenticate(@creds, options) set(response) end def get set(authenticate(@creds, {})) if expired? @token end private def authenticate(creds, options) connection = Fog::Core::Connection.new(creds[:uri].to_s, false, options) headers = { 'Accept' => 'application/json', 'Content-Type' => 'application/json' } request_options = { :expects => [200, 201], :headers => headers, :body => Fog::JSON.encode(creds[:data]), :method => 'POST', :path => creds[:uri].path + prefix_path(creds[:uri]) + path } connection.request(request_options) end def expired? if @expires.nil? || @expires.empty? raise ExpiryError, 'Missing token expiration data' end Time.parse(@expires) < Time.now.utc end def refresh raise StandardError, "__method__ not implemented yet!" end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/token/000077500000000000000000000000001476630434000216565ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/auth/token/v2.rb000066400000000000000000000043241476630434000225350ustar00rootroot00000000000000require 'fog/openstack/auth/token' require 'fog/openstack/auth/name' module Fog module OpenStack module Auth module Token class CredentialsError < RuntimeError; end class V2 include Fog::OpenStack::Auth::Token attr_reader :tenant def credentials if @token identity = {'token' => {'id' => @token}} else raise CredentialsError, "#{self.class}: User name is required" if @user.name.nil? raise CredentialsError, "#{self.class}: User password is required" if @user.password.nil? identity = {'passwordCredentials' => user_credentials} end if @tenant.id identity['tenantId'] = @tenant.id.to_s elsif @tenant.name identity['tenantName'] = @tenant.name.to_s end {'auth' => identity} end def prefix_path(uri) if uri.path =~ /\/v2(\.0)*(\/)*.*$/ '' else '/v2.0' end end def path '/tokens' end def user_credentials { 'username' => @user.name.to_s, 'password' => @user.password } end def set(response) @data = Fog::JSON.decode(response.body) @token = @data['access']['token']['id'] @expires = @data['access']['token']['expires'] @tenant = @data['access']['token']['tenant'] @user = @data['access']['user'] catalog = @data['access']['serviceCatalog'] @catalog = Fog::OpenStack::Auth::Catalog::V2.new(catalog) if catalog end def build_credentials(auth) if auth[:openstack_auth_token] @token = auth[:openstack_auth_token] else @user = Fog::OpenStack::Auth::User.new(auth[:openstack_userid], auth[:openstack_username]) @user.password = auth[:openstack_api_key] end @tenant = Fog::OpenStack::Auth::Name.new(auth[:openstack_tenant_id], auth[:openstack_tenant]) credentials end end end end end end fog-openstack-1.1.5/lib/fog/openstack/auth/token/v3.rb000066400000000000000000000116751476630434000225450ustar00rootroot00000000000000require 'fog/openstack/auth/token' require 'fog/openstack/auth/name' module Fog module OpenStack module Auth module Token class V3 include Fog::OpenStack::Auth::Token attr_reader :domain, :project # Default Domain ID DOMAIN_ID = 'default'.freeze def credentials identity = if @token { 'methods' => ['token'], 'token' => {'id' => @token} } elsif @application_credential { 'methods' => ['application_credential'], 'application_credential' => @application_credential } else { 'methods' => ['password'], 'password' => @user.identity } end if scope { 'auth' => { 'identity' => identity, 'scope' => scope } } else {'auth' => {'identity' => identity}} end end def prefix_path(uri) if uri.path =~ /\/v3(\/)*.*$/ '' else '/v3' end end def path '/auth/tokens' end def scope return nil if @application_credential return @project.identity if @project return @domain.identity if @domain end def set(response) @data = Fog::JSON.decode(response.body) @token = response.headers['x-subject-token'] @expires = @data['token']['expires_at'] @tenant = @data['token']['project'] @user = @data['token']['user'] catalog = @data['token']['catalog'] if catalog @catalog = Fog::OpenStack::Auth::Catalog::V3.new(catalog) end end def build_credentials(auth) if auth[:openstack_project_id] || auth[:openstack_project_name] # project scoped @project = Fog::OpenStack::Auth::ProjectScope.new( auth[:openstack_project_id], auth[:openstack_project_name] ) @project.domain = if auth[:openstack_project_domain_id] || auth[:openstack_project_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_project_domain_id], auth[:openstack_project_domain_name] ) elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) else Fog::OpenStack::Auth::Name.new(DOMAIN_ID, nil) end elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] # domain scoped @domain = Fog::OpenStack::Auth::DomainScope.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) end if auth[:openstack_auth_token] @token = auth[:openstack_auth_token] elsif auth[:openstack_application_credential_id] and auth[:openstack_application_credential_secret] @application_credential = { :id => auth[:openstack_application_credential_id], :secret => auth[:openstack_application_credential_secret], } else @user = Fog::OpenStack::Auth::User.new(auth[:openstack_userid], auth[:openstack_username]) @user.password = auth[:openstack_api_key] @user.domain = if auth[:openstack_user_domain_id] || auth[:openstack_user_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_user_domain_id], auth[:openstack_user_domain_name] ) elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) else Fog::OpenStack::Auth::Name.new(DOMAIN_ID, nil) end end credentials end end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal.rb000066400000000000000000000220001476630434000220500ustar00rootroot00000000000000module Fog module OpenStack class Baremetal < Fog::Service SUPPORTED_VERSIONS = /(.)*/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version ## MODELS # model_path 'fog/openstack/baremetal/models' model :chassis collection :chassis_collection model :driver collection :drivers model :node collection :nodes model :port collection :ports ## REQUESTS # request_path 'fog/openstack/baremetal/requests' # Node requests request :create_node request :delete_node request :get_node request :list_nodes request :list_nodes_detailed request :patch_node request :set_node_power_state request :set_node_provision_state request :set_node_maintenance request :unset_node_maintenance # Chassis requests request :create_chassis request :delete_chassis request :get_chassis request :list_chassis request :list_chassis_detailed request :patch_chassis # Driver requests request :get_driver request :get_driver_properties request :list_drivers # Port requests request :create_port request :delete_port request :get_port request :list_ports request :list_ports_detailed request :patch_port ## TODO not implemented API requests: ## Chassis # request :list_chassis_nodes # request :list_chassis_nodes_details ## Node requests # request :validate_node # request :get_boot_device # request :set_boot_device # request :list_supported_boot_devices # request :list_node_states # request :get_console_info # request :change_console_state # request :get_vendor_passthru_methods ## Driver requests # request :get_vendor_passthru_methods class Mock def self.data @data ||= Hash.new do |hash, key| chassis_uuid = Fog::UUID.uuid instance_uuid = Fog::UUID.uuid node_uuid = Fog::UUID.uuid hash[key] = { :chassis_collection => [ { "created_at" => "2000-01-01T12:00:00", "description" => "Sample chassis", "extra" => {}, "links" => [ { "href" => "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", "rel" => "self" }, { "href" => "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", "rel" => "bookmark" } ], "nodes" => [ { "href" => "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes", "rel" => "self" }, { "href" => "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes", "rel" => "bookmark" } ], "updated_at" => "2000-01-01T12:00:00", "uuid" => chassis_uuid } ], :drivers => [ { "hosts" => [ "fake-host" ], "name" => "sample-driver" } ], :nodes => [{ "chassis_uuid" => chassis_uuid, "console_enabled" => false, "created_at" => "2000-01-01T12:00:00", "driver" => "sample-driver", "driver_info" => {}, "extra" => {}, "instance_info" => {}, "instance_uuid" => instance_uuid, "last_error" => nil, "links" => [ { "href" => "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel" => "self" }, { "href" => "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel" => "bookmark" } ], "maintenance" => false, "maintenance_reason" => nil, "ports" => [ { "href" => "http://localhost:6385/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel" => "self" }, { "href" => "http://localhost:6385/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel" => "bookmark" } ], "power_state" => "power on", "properties" => { "cpus" => "1", "local_gb" => "10", "memory_mb" => "1024" }, "provision_state" => "active", "provision_updated_at" => "2000-01-01T12:00:00", "reservation" => nil, "target_power_state" => nil, "target_provision_state" => nil, "updated_at" => "2000-01-01T12:00:00", "uuid" => node_uuid }], :ports => [{ "address" => "fe:54:00:77:07:d9", "created_at" => "2014-12-23T19:35:30.734116", "extra" => { "foo" => "bar" }, "links" => [ { "href" => "http://localhost:6385/v1/ports/27e3153e-d5bf-4b7e-b517-fb518e17f34c", "rel" => "self" }, { "href" => "http://localhost:6385/ports/27e3153e-d5bf-4b7e-b517-fb518e17f34c", "rel" => "bookmark" } ], "node_uuid" => "7ae81bb3-dec3-4289-8d6c-da80bd8001ae", "updated_at" => "2014-12-23T19:35:30.734119", "uuid" => "27e3153e-d5bf-4b7e-b517-fb518e17f34c" }] } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9292 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Baremetal::NotFound end def default_service_type %w[baremetal] end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/000077500000000000000000000000001476630434000215315ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/000077500000000000000000000000001476630434000230145ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/chassis.rb000066400000000000000000000022671476630434000250050ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Baremetal class Chassis < Fog::OpenStack::Model identity :uuid attribute :description attribute :uuid # detailed attribute :created_at attribute :updated_at attribute :extra def create requires :description merge_attributes(service.create_chassis(attributes).body) self end def update(patch = nil) requires :uuid, :description if patch merge_attributes(service.patch_chassis(uuid, patch).body) else # TODO: implement update_node method using PUT method and self.attributes # once it is supported by Ironic raise ArgumentError, 'You need to provide patch attribute. Ironic does not support update by hash yet, only by jsonpatch.' end self end def destroy requires :uuid service.delete_chassis(uuid) true end def metadata requires :uuid service.get_chassis(uuid).headers end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/chassis_collection.rb000066400000000000000000000023471476630434000272170ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/baremetal/models/chassis' module Fog module OpenStack class Baremetal class ChassisCollection < Fog::OpenStack::Collection model Fog::OpenStack::Baremetal::Chassis def all(options = {}) load_response(service.list_chassis_detailed(options), 'chassis') end def summary(options = {}) load_response(service.list_chassis(options), 'chassis') end def details(options = {}) Fog::Logger.deprecation("Calling OpenStack[:baremetal].chassis_collection.details will be removed, "\ " call .chassis_collection.all for detailed list.") all(options) end def find_by_uuid(uuid) new(service.get_chassis(uuid).body) end alias get find_by_uuid def destroy(uuid) chassis = find_by_id(uuid) chassis.destroy end def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ load(service.list_chassis_detailed($1 => arguments.first).body['chassis']) else super end end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/driver.rb000066400000000000000000000006761476630434000246450ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Baremetal class Driver < Fog::OpenStack::Model identity :name attribute :name attribute :hosts def properties requires :name service.get_driver_properties(name).body end def metadata requires :name service.get_driver(name).headers end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/drivers.rb000066400000000000000000000007571476630434000250300ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/baremetal/models/driver' module Fog module OpenStack class Baremetal class Drivers < Fog::OpenStack::Collection model Fog::OpenStack::Baremetal::Driver def all(options = {}) load_response(service.list_drivers(options), 'drivers') end def find_by_name(name) new(service.get_driver(name).body) end alias get find_by_name end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/node.rb000066400000000000000000000047521476630434000242760ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Baremetal class Node < Fog::OpenStack::Model identity :uuid attribute :instance_uuid attribute :maintenance attribute :power_state attribute :provision_state attribute :uuid # detailed attribute :created_at attribute :updated_at attribute :chassis_uuid attribute :console_enabled attribute :driver attribute :driver_info attribute :extra attribute :instance_info attribute :last_error attribute :maintenance_reason attribute :properties attribute :provision_updated_at attribute :reservation attribute :target_power_state attribute :target_provision_state def create requires :driver merge_attributes(service.create_node(attributes).body) self end def update(patch = nil) requires :uuid, :driver if patch merge_attributes(service.patch_node(uuid, patch).body) else # TODO: implement update_node method using PUT method and self.attributes # once it is supported by Ironic raise ArgumentError, 'You need to provide patch attribute. Ironic does not support update by hash yet, only by jsonpatch.' end self end def destroy requires :uuid service.delete_node(uuid) true end def chassis requires :uuid service.get_chassis(chassis_uuid).body end def ports requires :uuid service.list_ports_detailed(:node_uuid => uuid).body['ports'] end def set_node_maintenance(parameters = nil) requires :uuid service.set_node_maintenance(uuid, parameters) true end def unset_node_maintenance(parameters = nil) requires :uuid service.unset_node_maintenance(uuid, parameters) true end def metadata requires :uuid service.get_node(uuid).headers end def set_power_state(power_state) requires :uuid service.set_node_power_state(uuid, power_state) end def set_provision_state(provision_state) requires :uuid service.set_node_provision_state(uuid, provision_state) end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/nodes.rb000066400000000000000000000023241476630434000244520ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/baremetal/models/node' module Fog module OpenStack class Baremetal class Nodes < Fog::OpenStack::Collection model Fog::OpenStack::Baremetal::Node def all(options = {}) load_response(service.list_nodes_detailed(options), 'nodes') end def summary(options = {}) load_response(service.list_nodes(options), 'nodes') end def details(options = {}) Fog::Logger.deprecation("Calling OpenStack[:baremetal].nodes.details will be removed, "\ " call .nodes.all for detailed list.") load(service.list_nodes_detailed(options).body['nodes']) end def find_by_uuid(uuid) new(service.get_node(uuid).body) end alias get find_by_uuid def destroy(uuid) node = find_by_uuid(uuid) node.destroy end def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ load(service.list_nodes_detailed($1 => arguments.first).body['nodes']) else super end end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/port.rb000066400000000000000000000023211476630434000243230ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Baremetal class Port < Fog::OpenStack::Model identity :uuid attribute :address attribute :uuid # detailed attribute :created_at attribute :updated_at attribute :extra attribute :node_uuid def create requires :address, :node_uuid merge_attributes(service.create_port(attributes).body) self end def update(patch = nil) requires :uuid, :address, :node_uuid if patch merge_attributes(service.patch_port(uuid, patch).body) else # TODO: implement update_node method using PUT method and self.attributes # once it is supported by Ironic raise ArgumentError, 'You need to provide patch attribute. Ironic does not support update by hash yet, only by jsonpatch.' end self end def destroy requires :uuid service.delete_port(uuid) true end def metadata requires :uuid service.get_port(uuid).headers end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/models/ports.rb000066400000000000000000000023221476630434000245070ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/baremetal/models/port' module Fog module OpenStack class Baremetal class Ports < Fog::OpenStack::Collection model Fog::OpenStack::Baremetal::Port def all(options = {}) load_response(service.list_ports_detailed(options), 'ports') end def summary(options = {}) load_response(service.list_ports(options), 'ports') end def details(options = {}) Fog::Logger.deprecation("Calling OpenStack[:baremetal].ports.details will be removed, "\ " call .ports.all for detailed list.") load(service.list_ports_detailed(options).body['ports']) end def find_by_uuid(uuid) new(service.get_port(uuid).body) end alias get find_by_uuid def destroy(uuid) port = find_by_id(uuid) port.destroy end def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ load(service.list_ports_detailed($1 => arguments.first).body['ports']) else super end end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/000077500000000000000000000000001476630434000234045ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/create_chassis.rb000066400000000000000000000024111476630434000267070ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Create a new chassis # # === Attributes === # description = Free text description of the chassis # extra = Record arbitrary key/value metadata. Can be specified multiple times def create_chassis(attributes) desired_options = [ :description, :extra ] # Filter only allowed creation attributes data = attributes.select { |key, _value| desired_options.include?(key.to_sym) } request( :body => Fog::JSON.encode(data), :expects => [200, 201], :method => 'POST', :path => 'chassis' ) end end class Mock def create_chassis(_attributes) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:chassis_collection].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/create_node.rb000066400000000000000000000034711476630434000262060ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Create a new node # # === Attributes === # chassis_uuid = UUID of the chassis that this node belongs to # driver = Driver used to control the node [REQUIRED] # driver_info = Key/value pairs used by the driver, such as out-of-band management credentials. Can be # specified multiple times # extra = Record arbitrary key/value metadata. Can be specified multiple times # uuid = Unique UUID for the node # properties = Key/value pairs describing the physical characteristics of the node. This is exported to # Nova and used by the scheduler. Can be specified multiple times def create_node(attributes) desired_options = [ :chassis_uuid, :driver, :driver_info, :extra, :uuid, :properties ] # Filter only allowed creation attributes data = attributes.select { |key, _value| desired_options.include?(key.to_sym) } request( :body => Fog::JSON.encode(data), :expects => [200, 201], :method => 'POST', :path => 'nodes' ) end end class Mock def create_node(_attributes) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:nodes].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/create_port.rb000066400000000000000000000024651476630434000262470ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Create a new port # # === Attributes === # address = MAC Address for this port # extra = Record arbitrary key/value metadata. Can be specified multiple times # node_uuid = UUID of the node that this port belongs to def create_port(attributes) desired_options = [ :address, :extra, :node_uuid ] # Filter only allowed creation attributes data = attributes.select { |key, _value| desired_options.include?(key.to_sym) } request( :body => Fog::JSON.encode(data), :expects => [200, 201], :method => 'POST', :path => 'ports' ) end end class Mock def create_port(_attributes) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:ports].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/delete_chassis.rb000066400000000000000000000010521476630434000267060ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def delete_chassis(chassis_uuid) data = {:chassis_uuid => chassis_uuid} request( :body => Fog::JSON.encode(data), :expects => [200, 204], :method => 'DELETE', :path => 'chassis' ) end end class Mock def delete_chassis(_chassis_uuid) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/delete_node.rb000066400000000000000000000010271476630434000262000ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def delete_node(node_uuid) data = {:node_ident => node_uuid} request( :body => Fog::JSON.encode(data), :expects => [200, 204], :method => 'DELETE', :path => 'nodes' ) end end class Mock def delete_node(_node_uuid) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/delete_port.rb000066400000000000000000000010261476630434000262360ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def delete_port(port_uuid) data = {:port_uuid => port_uuid} request( :body => Fog::JSON.encode(data), :expects => [200, 204], :method => 'DELETE', :path => 'ports' ) end end class Mock def delete_port(_port_uuid) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/get_chassis.rb000066400000000000000000000010321476630434000262210ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def get_chassis(chassis_uuid) request( :expects => [200, 204], :method => 'GET', :path => "chassis/#{chassis_uuid}" ) end end class Mock def get_chassis(_chassis_uuid) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = data[:chassis_collection].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/get_driver.rb000066400000000000000000000010121476630434000260550ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def get_driver(driver_name) request( :expects => [200, 204], :method => 'GET', :path => "drivers/#{driver_name}" ) end end class Mock def get_driver(_driver_name) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = data[:drivers].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/get_driver_properties.rb000066400000000000000000000031441476630434000303410ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def get_driver_properties(driver_name) data = {:driver_name => driver_name} request( :body => Fog::JSON.encode(data), :expects => [200, 204], :method => 'GET', :path => "drivers/properties" ) end end class Mock def get_driver_properties(_driver_name) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "pxe_deploy_ramdisk" => "UUID (from Glance) of the ramdisk.", "ipmi_transit_address" => "transit address for bridged request.", "ipmi_terminal_port" => "node's UDP port to connect to.", "ipmi_target_channel" => "destination channel for bridged request.", "ipmi_transit_channel" => "transit channel for bridged request.", "ipmi_local_address" => "local IPMB address for bridged requests. ", "ipmi_username" => "username; default is NULL user. Optional.", "ipmi_address" => "IP address or hostname of the node. Required.", "ipmi_target_address" => "destination address for bridged request.", "ipmi_password" => "password. Optional.", "pxe_deploy_kernel" => "UUID (from Glance) of the deployment kernel.", "ipmi_priv_level" => "privilege level; default is ADMINISTRATOR. ", "ipmi_bridging" => "bridging_type." } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/get_node.rb000066400000000000000000000007661476630434000255260ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def get_node(node_id) request( :expects => [200, 204], :method => 'GET', :path => "nodes/#{node_id}" ) end end class Mock def get_node(_node_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = data[:nodes].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/get_port.rb000066400000000000000000000007661476630434000255650ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def get_port(port_id) request( :expects => [200, 204], :method => 'GET', :path => "ports/#{port_id}" ) end end class Mock def get_port(_port_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = data[:ports].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_chassis.rb000066400000000000000000000021571476630434000264260ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_chassis(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'chassis', :query => options ) end end class Mock def list_chassis(_parameters = nil) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "chassis" => [ { "description" => "Sample chassis", "links" => [ { "href" => "http =>//localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", "rel" => "self" }, { "href" => "http =>//localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", "rel" => "bookmark" } ], "uuid" => Fog::UUID.uuid } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_chassis_detailed.rb000066400000000000000000000011171476630434000302540ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_chassis_detailed(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'chassis/detail', :query => options ) end end class Mock def list_chassis_detailed(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = {"chassis" => data[:chassis_collection]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_drivers.rb000066400000000000000000000010531476630434000264410ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_drivers(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'drivers', :query => options ) end end class Mock def list_drivers(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = {"drivers" => data[:drivers]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_nodes.rb000066400000000000000000000015201476630434000260720ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_nodes(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'nodes', :query => options ) end end class Mock def list_nodes(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "nodes" => [{ "instance_uuid" => Fog::UUID.uuid, "maintenance" => false, "power_state" => "power on", "provision_state" => "active", "uuid" => Fog::UUID.uuid, "links" => [] }] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_nodes_detailed.rb000066400000000000000000000010721476630434000277270ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_nodes_detailed(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'nodes/detail', :query => options ) end end class Mock def list_nodes_detailed(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = {"nodes" => data[:nodes]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_ports.rb000066400000000000000000000021221476630434000261300ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_ports(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'ports', :query => options ) end end class Mock def list_ports(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "ports" => [ { "address" => "fe:54:00:77:07:d9", "links" => [ { "href" => "http://localhost:6385/v1/ports/27e3153e-d5bf-4b7e-b517-fb518e17f34c", "rel" => "self" }, { "href" => "http://localhost:6385/ports/27e3153e-d5bf-4b7e-b517-fb518e17f34c", "rel" => "bookmark" } ], "uuid" => Fog::UUID.uuid } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/list_ports_detailed.rb000066400000000000000000000010721476630434000277660ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def list_ports_detailed(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'ports/detail', :query => options ) end end class Mock def list_ports_detailed(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = {"ports" => data[:ports]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/patch_chassis.rb000066400000000000000000000024151476630434000265470ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Patch a chassis # # parameter example: # [{:op=> 'replace', :path => "/extra/placement", :value => "somewhere"}] # # === Patch parameter, list of jsonpatch === # op = Operations: 'add', 'replace' or 'remove' # path = Attributes to add/replace or remove (only PATH is necessary on remove), # e.g. /extra/placement # value = Value to set def patch_chassis(chassis_uuid, patch) request( :body => Fog::JSON.encode(patch), :expects => 200, :method => 'PATCH', :path => "chassis/#{chassis_uuid}" ) end end class Mock def patch_chassis(_chassis_uuid, _patch) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:chassis_collection].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/patch_node.rb000066400000000000000000000023521476630434000260370ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Patch a node # # parameter example: # [{:op=> 'replace', :path => "/driver", :value => "pxe_ssh"}] # # === Patch parameter, list of jsonpatch === # op = Operations: 'add', 'replace' or 'remove' # path = Attributes to add/replace or remove (only PATH is necessary on remove), # e.g. /driver_info/ipmi_address # value = Value to set def patch_node(node_uuid, patch) request( :body => Fog::JSON.encode(patch), :expects => 200, :method => 'PATCH', :path => "nodes/#{node_uuid}" ) end end class Mock def patch_node(_node_uuid, _patch) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:nodes].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/patch_port.rb000066400000000000000000000023761476630434000261040ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real # Patch a port # # parameter example: # [{:op=> 'replace', :path => "/driver_info/ipmi_address", :value => "192.0.2.1"}] # # === Patch parameter, list of jsonpatch === # op = Operations: 'add', 'replace' or 'remove' # path = Attributes to add/replace or remove (only PATH is necessary on remove), # e.g. /driver_info/ipmi_address # value = Value to set def patch_port(port_uuid, patch) request( :body => Fog::JSON.encode(patch), :expects => 200, :method => 'PATCH', :path => "ports/#{port_uuid}" ) end end class Mock def patch_port(_port_uuid, _patch) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:ports].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/set_node_maintenance.rb000066400000000000000000000015041476630434000300730ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def set_node_maintenance(node_uuid, parameters = nil) request( :expects => [200, 202, 204], :method => 'PUT', :path => "nodes/#{node_uuid}/maintenance", :query => parameters ) end end class Mock def set_node_maintenance(_node_uuid, _parameters = nil) response = Excon::Response.new response.status = 202 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/set_node_power_state.rb000066400000000000000000000016461476630434000301540ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def set_node_power_state(node_id, power_state) data = { 'target' => power_state } request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'PUT', :path => "nodes/#{node_id}/states/power" ) end end class Mock def set_node_power_state(_node_id, _power_state) response = Excon::Response.new response.status = 202 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:nodes].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/set_node_provision_state.rb000066400000000000000000000020431476630434000310400ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def set_node_provision_state(node_id, provision_state) data = { 'target' => provision_state } request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'PUT', :path => "nodes/#{node_id}/states/provision", :headers => { :'X-OpenStack-Ironic-API-Version' => 'latest' } ) end end class Mock def set_node_provision_state(_node_id, _provision_state) response = Excon::Response.new response.status = 202 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = data[:nodes].first response end end end end end fog-openstack-1.1.5/lib/fog/openstack/baremetal/requests/unset_node_maintenance.rb000066400000000000000000000015131476630434000304360ustar00rootroot00000000000000module Fog module OpenStack class Baremetal class Real def unset_node_maintenance(node_uuid, parameters = nil) request( :expects => [200, 202, 204], :method => 'DELETE', :path => "nodes/#{node_uuid}/maintenance", :query => parameters ) end end class Mock def unset_node_maintenance(_node_uuid, _parameters = nil) response = Excon::Response.new response.status = 202 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute.rb000066400000000000000000000301741476630434000216030ustar00rootroot00000000000000module Fog module OpenStack class Compute < Fog::Service SUPPORTED_VERSIONS = /v2\.0|v2\.1/ SUPPORTED_MICROVERSION = '2.15'.freeze requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_application_credential_id, :openstack_application_credential_secret ## MODELS # model_path 'fog/openstack/compute/models' model :aggregate collection :aggregates model :availability_zone collection :availability_zones model :server collection :servers model :service collection :services model :image collection :images model :flavor collection :flavors model :metadatum collection :metadata model :address collection :addresses model :security_group collection :security_groups model :security_group_rule collection :security_group_rules model :key_pair collection :key_pairs model :tenant collection :tenants model :volume collection :volumes model :volume_attachment collection :volume_attachments model :network collection :networks model :snapshot collection :snapshots model :host collection :hosts model :server_group collection :server_groups model :os_interface collection :os_interfaces ## REQUESTS # request_path 'fog/openstack/compute/requests' # Aggregate CRUD request :list_aggregates request :create_aggregate request :update_aggregate request :get_aggregate request :update_aggregate request :update_aggregate_metadata request :add_aggregate_host request :remove_aggregate_host request :delete_aggregate # Server CRUD request :list_servers request :list_servers_detail request :create_server request :get_server_details request :get_server_password request :update_server request :delete_server # Server Actions request :server_actions request :server_action request :reboot_server request :rebuild_server request :resize_server request :confirm_resize_server request :revert_resize_server request :pause_server request :unpause_server request :suspend_server request :resume_server request :start_server request :stop_server request :rescue_server request :change_server_password request :add_fixed_ip request :remove_fixed_ip request :server_diagnostics request :boot_from_snapshot request :reset_server_state request :add_security_group request :remove_security_group request :shelve_server request :unshelve_server request :shelve_offload_server # Server Extenstions request :get_console_output request :get_vnc_console request :live_migrate_server request :migrate_server request :evacuate_server # Server Remote Consoles request :remote_consoles # Service CRUD request :list_services request :enable_service request :disable_service request :disable_service_log_reason request :delete_service # Image CRUD request :list_images request :list_images_detail request :create_image request :get_image_details request :delete_image # Flavor CRUD request :list_flavors request :list_flavors_detail request :get_flavor_details request :create_flavor request :delete_flavor # Flavor Actions request :get_flavor_metadata request :create_flavor_metadata request :update_flavor_metadata request :delete_flavor_metadata # Flavor Access request :add_flavor_access request :remove_flavor_access request :list_tenants_with_flavor_access # Hypervisor request :get_hypervisor_statistics request :get_hypervisor request :list_hypervisors request :list_hypervisors_detail request :list_hypervisor_servers # Metadata request :list_metadata request :get_metadata request :set_metadata request :update_metadata request :delete_metadata # Metadatam request :delete_meta request :update_meta # Address request :list_addresses request :list_address_pools request :list_all_addresses request :list_private_addresses request :list_public_addresses request :get_address request :allocate_address request :associate_address request :release_address request :disassociate_address # Security Group request :list_security_groups request :get_security_group request :create_security_group request :create_security_group_rule request :delete_security_group request :delete_security_group_rule request :get_security_group_rule # Key Pair request :list_key_pairs request :get_key_pair request :create_key_pair request :delete_key_pair # Tenant request :set_tenant request :get_limits # Volume request :list_volumes request :list_volumes_detail request :create_volume request :get_volume_details request :delete_volume request :attach_volume request :detach_volume request :get_server_volumes request :list_volume_attachments # Snapshot request :create_snapshot request :list_snapshots request :list_snapshots_detail request :get_snapshot_details request :delete_snapshot # Usage request :list_usages request :get_usage # Quota request :get_quota request :get_quota_defaults request :update_quota # Hosts request :list_hosts request :get_host_details # Zones request :list_zones request :list_zones_detailed request :list_availability_zones # Server Group request :list_server_groups request :get_server_group request :create_server_group request :delete_server_group # Server Os Interfaces request :list_os_interfaces request :get_os_interface request :create_os_interface request :delete_os_interface class Mock attr_reader :auth_token attr_reader :auth_token_expiration attr_reader :current_user attr_reader :current_tenant def self.data @data ||= Hash.new do |hash, key| hash[key] = { :last_modified => { :images => {}, :servers => {}, :key_pairs => {}, :security_groups => {}, :addresses => {} }, :aggregates => [{ "availability_zone" => "nova", "created_at" => "2012-11-16T06:22:23.032493", "deleted" => false, "deleted_at" => nil, "id" => 1, "name" => "name", "updated_at" => nil }], :images => { "0e09fbd6-43c5-448a-83e9-0d3d05f9747e" => { "id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "name" => "cirros-0.3.0-x86_64-blank", 'progress' => 100, 'status' => "ACTIVE", 'updated' => "", 'minRam' => 0, 'minDisk' => 0, 'metadata' => {}, 'links' => [{"href" => "http://nova1:8774/v1.1/admin/images/1", "rel" => "self"}, {"href" => "http://nova1:8774/admin/images/2", "rel" => "bookmark"}] } }, :servers => {}, :key_pairs => {}, :security_groups => { '0' => { "id" => 0, "tenant_id" => Fog::Mock.random_hex(8), "name" => "default", "description" => "default", "rules" => [ {"id" => 0, "parent_group_id" => 0, "from_port" => 68, "to_port" => 68, "ip_protocol" => "udp", "ip_range" => {"cidr" => "0.0.0.0/0"}, "group" => {}}, ], }, }, :server_groups => {}, :server_security_group_map => {}, :addresses => {}, :quota => { 'security_group_rules' => 20, 'security_groups' => 10, 'injected_file_content_bytes' => 10240, 'injected_file_path_bytes' => 256, 'injected_files' => 5, 'metadata_items' => 128, 'floating_ips' => 10, 'instances' => 10, 'key_pairs' => 10, 'gigabytes' => 5000, 'volumes' => 10, 'cores' => 20, 'ram' => 51200 }, :volumes => {}, :snapshots => {}, :os_interfaces => [ { "fixed_ips" => [ { "ip_address" => "192.168.1.3", "subnet_id" => "f8a6e8f8-c2ec-497c-9f23-da9616de54ef" } ], "mac_addr" => "fa:16:3e:4c:2c:30", "net_id" => "3cb9bc59-5699-4588-a4b1-b87f96708bc6", "port_id" => "ce531f90-199f-48c0-816c-13e38010b442", "port_state" => "ACTIVE" } ] } end end def self.reset @data = nil end include Fog::OpenStack::Core def initialize(options = {}) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8774 management_url.path = '/v1.1/1' @openstack_management_url = management_url.to_s end def data self.class.data["#{@openstack_username}-#{@current_tenant}"] end def reset_data self.class.data.delete("#{@openstack_username}-#{@current_tenant}") end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Compute::NotFound end def default_service_type %w[compute] end def initialize(options = {}) @supported_versions = SUPPORTED_VERSIONS @supported_microversion = SUPPORTED_MICROVERSION @microversion_key = 'X-OpenStack-Nova-API-Version' super end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/000077500000000000000000000000001476630434000212515ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/compute/models/000077500000000000000000000000001476630434000225345ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/compute/models/address.rb000066400000000000000000000031651476630434000245130ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Address < Fog::OpenStack::Model identity :id attribute :ip attribute :pool attribute :fixed_ip attribute :instance_id def initialize(attributes = {}) # assign server first to prevent race condition with persisted? self.server = attributes.delete(:server) super end def destroy requires :id service.release_address(id) true end def server=(new_server) if new_server associate(new_server) else disassociate end end def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? data = service.allocate_address(pool).body['floating_ip'] new_attributes = data.reject { |key, _value| !['id', 'instance_id', 'ip', 'fixed_ip'].include?(key) } merge_attributes(new_attributes) if @server self.server = @server end true end private def associate(new_server) if persisted? @server = nil self.instance_id = new_server.id service.associate_address(instance_id, ip) else @server = new_server end end def disassociate @server = nil if persisted? service.disassociate_address(instance_id, ip) end self.instance_id = nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/addresses.rb000066400000000000000000000013041476630434000250340ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/address' module Fog module OpenStack class Compute class Addresses < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Address def all(options = {}) load_response(service.list_all_addresses(options), 'floating_ips') end def get(address_id) if address = service.get_address(address_id).body['floating_ip'] new(address) end rescue Fog::OpenStack::Compute::NotFound nil end def get_address_pools service.list_address_pools.body['floating_ip_pools'] end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/aggregate.rb000066400000000000000000000024341476630434000250120ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Aggregate < Fog::OpenStack::Model identity :id attribute :availability_zone attribute :name attribute :metadata attribute :deleted attribute :deleted_at attribute :updated_at attribute :created_at # Detailed attribute :hosts def save requires :name identity ? update : create end def create requires :name merge_attributes(service.create_aggregate(name, attributes).body['aggregate']) self end def update requires :id merge_attributes(service.update_aggregate(id, attributes).body['aggregate']) self end def add_host(host_uuid) requires :id service.add_aggregate_host(id, host_uuid) end def remove_host(host_uuid) requires :id service.remove_aggregate_host(id, host_uuid) end def update_metadata(metadata) service.update_aggregate_metadata(id, metadata) end def destroy requires :id service.delete_aggregate(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/aggregates.rb000066400000000000000000000011461476630434000251740ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/aggregate' module Fog module OpenStack class Compute class Aggregates < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Aggregate def all(options = {}) load_response(service.list_aggregates(options), 'aggregates') end def find_by_id(id) new(service.get_aggregate(id).body['aggregate']) end alias get find_by_id def destroy(id) aggregate = find_by_id(id) aggregate.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/availability_zone.rb000066400000000000000000000005071476630434000265700ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class AvailabilityZone < Fog::OpenStack::Model identity :zoneName attribute :hosts attribute :zoneLabel attribute :zoneState def to_s zoneName end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/availability_zones.rb000066400000000000000000000011141476630434000267460ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/availability_zone' module Fog module OpenStack class Compute class AvailabilityZones < Fog::OpenStack::Collection model Fog::OpenStack::Compute::AvailabilityZone def all(options = {}) data = service.list_zones_detailed(options) load_response(data, 'availabilityZoneInfo') end def summary(options = {}) data = service.list_zones(options) load_response(data, 'availabilityZoneInfo') end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/flavor.rb000066400000000000000000000033631476630434000243570ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Flavor < Fog::OpenStack::Model identity :id attribute :name attribute :ram attribute :disk attribute :vcpus attribute :links attribute :swap attribute :rxtx_factor attribute :metadata attribute :ephemeral, :aliases => 'OS-FLV-EXT-DATA:ephemeral' attribute :is_public, :aliases => 'os-flavor-access:is_public' attribute :disabled, :aliases => 'OS-FLV-DISABLED:disabled' def save requires :name, :ram, :vcpus, :disk attributes[:ephemeral] = ephemeral || 0 attributes[:is_public] = is_public || false attributes[:disabled] = disabled || false attributes[:swap] = swap || 0 attributes[:rxtx_factor] = rxtx_factor || 1.0 merge_attributes(service.create_flavor(attributes).body['flavor']) self end def destroy requires :id service.delete_flavor(id) true end def metadata service.get_flavor_metadata(id).body['extra_specs'] rescue Fog::OpenStack::Compute::NotFound nil end def create_metadata(metadata) service.create_flavor_metadata(id, metadata) rescue Fog::OpenStack::Compute::NotFound nil end def update_metadata(key, value) service.update_flavor_metadata(id, key, value) rescue Fog::OpenStack::Compute::NotFound nil end def delete_metadata(key) service.delete_flavor_metadata(id, key) rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/flavors.rb000066400000000000000000000013261476630434000245370ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/flavor' module Fog module OpenStack class Compute class Flavors < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Flavor def all(options = {}) data = service.list_flavors_detail(options) load_response(data, 'flavors') end def summary(options = {}) data = service.list_flavors(options) load_response(data, 'flavors') end def get(flavor_id) data = service.get_flavor_details(flavor_id).body['flavor'] new(data) rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/host.rb000066400000000000000000000013221476630434000240340ustar00rootroot00000000000000require 'fog/compute/models/server' require 'fog/openstack/compute/models/metadata' module Fog module OpenStack class Compute class Host < Fog::OpenStack::Model attribute :host_name attribute :service_name attribute :details attribute :zone def initialize(attributes) attributes["service_name"] = attributes.delete "service" # Old 'connection' is renamed as service and should be used instead prepare_service_value(attributes) super end def details service.get_host_details(host_name).body['host'] rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/hosts.rb000066400000000000000000000012061476630434000242200ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/host' module Fog module OpenStack class Compute class Hosts < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Host def all(options = {}) data = service.list_hosts(options) load_response(data, 'hosts') end def get(host_name) if host = service.get_host_details(host_name).body['host'] new('host_name' => host_name, 'details' => host) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/image.rb000066400000000000000000000022721476630434000241460ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'fog/openstack/compute/models/metadata' module Fog module OpenStack class Compute class Image < Fog::OpenStack::Model identity :id attribute :name attribute :created_at, :aliases => 'created' attribute :updated_at, :aliases => 'updated' attribute :progress attribute :status attribute :minDisk attribute :minRam attribute :server, :aliases => 'server' attribute :size, :aliases => 'OS-EXT-IMG-SIZE:size' attribute :metadata attribute :links def metadata @metadata ||= begin Fog::OpenStack::Compute::Metadata.new(:service => service, :parent => self) end end def metadata=(new_metadata = {}) metas = [] new_metadata.to_hash.each_pair { |k, v| metas << {"key" => k, "value" => v} } metadata.load(metas) end def destroy requires :id service.delete_image(id) true end def ready? status == 'ACTIVE' end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/images.rb000066400000000000000000000016051476630434000243300ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/image' module Fog module OpenStack class Compute class Images < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Compute::Image attribute :server def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg data = service.list_images_detail(filters) images = load_response(data, 'images') if server replace(select { |image| image.server_id == server.id }) end images end def get(image_id) data = service.get_image_details(image_id).body['image'] new(data) rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/key_pair.rb000066400000000000000000000026651476630434000246750ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class KeyPair < Fog::OpenStack::Model identity :name attribute :fingerprint attribute :public_key attribute :private_key attribute :user_id attribute :id attr_accessor :public_key def destroy requires :name service.delete_key_pair(name) true end def save requires :name data = if public_key service.create_key_pair(name, public_key, user_id).body['keypair'] else service.create_key_pair(name, nil, user_id).body['keypair'] end new_attributes = data.reject { |key, _value| !['fingerprint', 'public_key', 'name', 'private_key', 'user_id'].include?(key) } merge_attributes(new_attributes) true end def write(path = "#{ENV['HOME']}/.ssh/fog_#{Fog.credential}_#{name}.pem") if writable? split_private_key = private_key.split(/\n/) File.open(path, "w") do |f| split_private_key.each { |line| f.puts line } f.chmod 0600 end "Key file built: #{path}" else "Invalid private key" end end def writable? !!(private_key && ENV.key?('HOME')) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/key_pairs.rb000066400000000000000000000013221476630434000250450ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/key_pair' module Fog module OpenStack class Compute class KeyPairs < Fog::OpenStack::Collection model Fog::OpenStack::Compute::KeyPair def all(options = {}) items = [] service.list_key_pairs(options).body['keypairs'].each do |kp| items += kp.values end # TODO: convert to load_response? load(items) end def get(key_pair_name) if key_pair_name all.select { |kp| kp.name == key_pair_name }.first end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/metadata.rb000066400000000000000000000035551476630434000246510ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/models/meta_parent' require 'fog/openstack/compute/models/metadatum' require 'fog/openstack/compute/models/image' require 'fog/openstack/compute/models/server' module Fog module OpenStack class Compute class Metadata < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Metadatum include Fog::OpenStack::Compute::MetaParent def all requires :parent metadata = service.list_metadata(collection_name, @parent.id).body['metadata'] metas = [] metadata.each_pair { |k, v| metas << {"key" => k, "value" => v} } unless metadata.nil? # TODO: convert to load_response? load(metas) end def get(key) requires :parent data = service.get_metadata(collection_name, @parent.id, key).body["meta"] metas = [] data.each_pair { |k, v| metas << {"key" => k, "value" => v} } new(metas[0]) rescue Fog::OpenStack::Compute::NotFound nil end def update(data = nil) requires :parent service.update_metadata(collection_name, @parent.id, to_hash(data)) end def set(data = nil) requires :parent service.set_metadata(collection_name, @parent.id, to_hash(data)) end def new(attributes = {}) requires :parent super({:parent => @parent}.merge!(attributes)) end def to_hash(data = nil) if data.nil? data = {} each do |meta| if meta.kind_of?(Fog::OpenStack::Compute::Metadatum) data.store(meta.key, meta.value) else data.store(meta["key"], meta["value"]) end end end data end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/metadatum.rb000066400000000000000000000011251476630434000250410ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'fog/openstack/models/meta_parent' module Fog module OpenStack class Compute class Metadatum < Fog::OpenStack::Model include Fog::OpenStack::Compute::MetaParent identity :key attribute :value def destroy requires :identity service.delete_meta(collection_name, @parent.id, key) true end def save requires :identity, :value service.update_meta(collection_name, @parent.id, key, value) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/network.rb000066400000000000000000000003511476630434000245510ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Network < Fog::OpenStack::Model identity :id attribute :name attribute :addresses end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/networks.rb000066400000000000000000000012721476630434000247370ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/network' module Fog module OpenStack class Compute class Networks < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Network attribute :server def all requires :server networks = [] server.addresses.each_with_index do |address, index| networks << { :id => index + 1, :name => address[0], :addresses => address[1].map { |a| a['addr'] } } end # TODO: convert to load_response? load(networks) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/os_interface.rb000066400000000000000000000004771476630434000255320ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class OsInterface < Fog::OpenStack::Model identity :port_id attribute :fixed_ips, :type => :array attribute :mac_addr attribute :net_id attribute :port_state end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/os_interfaces.rb000066400000000000000000000012111476630434000257000ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/os_interface' module Fog module OpenStack class Compute class OsInterfaces < Fog::OpenStack::Collection model Fog::OpenStack::Compute::OsInterface attribute :server def all requires :server data = service.list_os_interfaces(server.id) load_response(data, 'interfaceAttachments') end def get(port_id) requires :server data = service.get_os_interface(server.id,port_id) load_response(data, 'interfaceAttachment') end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/security_group.rb000066400000000000000000000040211476630434000261410ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class SecurityGroup < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :security_group_rules, :aliases => "rules" attribute :tenant_id def security_group_rules Fog::OpenStack::Compute::SecurityGroupRules.new(:service => service).load(attributes[:security_group_rules]) end def rules Fog::Logger.deprecation('#rules is deprecated. Use #security_group_rules instead') attributes[:security_group_rules] end # no one should be calling this because it doesn't do anything # useful but we deprecated the rules attribute and need to maintain the API def rules=(new_rules) Fog::Logger.deprecation('#rules= is deprecated. Use the Fog::OpenStack::Compute::SecurityGroupRules collection to create new rules.') attributes[:security_group_rules] = new_rules end def save requires :name, :description data = service.create_security_group(name, description) merge_attributes(data.body['security_group']) true end def destroy requires :id service.delete_security_group(id) true end def create_security_group_rule(min, max, ip_protocol = "tcp", cidr = "0.0.0.0/0", group_id = nil) Fog::Logger.deprecation('#create_security_group_rule is deprecated. Use the Fog::OpenStack::Compute::SecurityGroupRules collection to create new rules.') requires :id service.create_security_group_rule(id, ip_protocol, min, max, cidr, group_id) end def delete_security_group_rule(rule_id) Fog::Logger.deprecation('#create_security_group_rule is deprecated. Use the Fog::OpenStack::Compute::SecurityGroupRule objects to destroy rules.') service.delete_security_group_rule(rule_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/security_group_rule.rb000066400000000000000000000015031476630434000271720ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class SecurityGroupRule < Fog::OpenStack::Model identity :id attribute :from_port attribute :group attribute :ip_protocol attribute :to_port attribute :parent_group_id attribute :ip_range def save requires :ip_protocol, :from_port, :to_port, :parent_group_id cidr = ip_range && ip_range["cidr"] if rule = service.create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group).data[:body] merge_attributes(rule["security_group_rule"]) end end def destroy requires :id service.delete_security_group_rule(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/security_group_rules.rb000066400000000000000000000011121476630434000273510ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/security_group_rule' module Fog module OpenStack class Compute class SecurityGroupRules < Fog::OpenStack::Collection model Fog::OpenStack::Compute::SecurityGroupRule def get(security_group_rule_id) if security_group_rule_id body = service.get_security_group_rule(security_group_rule_id).body new(body['security_group_rule']) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/security_groups.rb000066400000000000000000000012111476630434000263220ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/security_group' module Fog module OpenStack class Compute class SecurityGroups < Fog::OpenStack::Collection model Fog::OpenStack::Compute::SecurityGroup def all(options = {}) load_response(service.list_security_groups(options), 'security_groups') end def get(security_group_id) if security_group_id new(service.get_security_group(security_group_id).body['security_group']) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/server.rb000066400000000000000000000312101476630434000243640ustar00rootroot00000000000000require 'fog/compute/models/server' require 'fog/openstack/compute/models/metadata' module Fog module OpenStack class Compute class Server < Fog::Compute::Server identity :id attribute :instance_name, :aliases => 'OS-EXT-SRV-ATTR:instance_name' attribute :addresses attribute :flavor attribute :host_id, :aliases => 'hostId' attribute :image attribute :metadata attribute :links attribute :name # @!attribute [rw] personality # @note This attribute is only used for server creation. This field will be nil on subsequent retrievals. # @return [Hash] Hash containing data to inject into the file system of the cloud server instance during # server creation. # @example To inject fog.txt into file system # :personality => [{ :path => '/root/fog.txt', # :contents => Base64.encode64('Fog was here!') # }] # @see #create # @see http://docs.openstack.org/api/openstack-compute/2/content/Server_Personality-d1e2543.html attribute :personality attribute :progress attribute :accessIPv4 attribute :accessIPv6 attribute :availability_zone, :aliases => 'OS-EXT-AZ:availability_zone' attribute :user_data_encoded attribute :state, :aliases => 'status' attribute :created, :type => :time attribute :updated, :type => :time attribute :tenant_id attribute :user_id attribute :key_name attribute :fault attribute :config_drive attribute :os_dcf_disk_config, :aliases => 'OS-DCF:diskConfig' attribute :os_ext_srv_attr_host, :aliases => 'OS-EXT-SRV-ATTR:host' attribute :os_ext_srv_attr_hypervisor_hostname, :aliases => 'OS-EXT-SRV-ATTR:hypervisor_hostname' attribute :os_ext_srv_attr_instance_name, :aliases => 'OS-EXT-SRV-ATTR:instance_name' attribute :os_ext_sts_power_state, :aliases => 'OS-EXT-STS:power_state' attribute :os_ext_sts_task_state, :aliases => 'OS-EXT-STS:task_state' attribute :os_ext_sts_vm_state, :aliases => 'OS-EXT-STS:vm_state' attr_reader :password attr_writer :image_ref, :flavor_ref, :nics, :os_scheduler_hints attr_accessor :block_device_mapping, :block_device_mapping_v2 # In some cases it's handy to be able to store the project for the record, e.g. swift doesn't contain project # info in the result, so we can track it in this attribute based on what project was used in the request attr_accessor :project def initialize(attributes = {}) # Old 'connection' is renamed as service and should be used instead prepare_service_value(attributes) self.security_groups = attributes.delete(:security_groups) self.min_count = attributes.delete(:min_count) self.max_count = attributes.delete(:max_count) self.nics = attributes.delete(:nics) self.os_scheduler_hints = attributes.delete(:os_scheduler_hints) self.block_device_mapping = attributes.delete(:block_device_mapping) self.block_device_mapping_v2 = attributes.delete(:block_device_mapping_v2) super end def metadata @metadata ||= begin Fog::OpenStack::Compute::Metadata.new(:service => service, :parent => self) end end def metadata=(new_metadata = {}) return unless new_metadata metas = [] new_metadata.each { |k, v| metas << {"key" => k, "value" => v} } @metadata = metadata.load(metas) end def user_data=(ascii_userdata) self.user_data_encoded = [ascii_userdata].pack('m0') if ascii_userdata end def destroy requires :id service.delete_server(id) true end def images requires :id service.images(:server => self) end def all_addresses # currently openstack API does not tell us what is a floating ip vs a fixed ip for the vm listing, # we fall back to get all addresses and filter sadly. # Only includes manually-assigned addresses, not auto-assigned @all_addresses ||= service.list_all_addresses.body["floating_ips"].select { |data| data['instance_id'] == id } end def os_interfaces requires :id service.os_interfaces(:server => self) end def reload @all_addresses = nil super end # returns all ip_addresses for a given instance # this includes both the fixed ip(s) and the floating ip(s) def ip_addresses addresses ? addresses.values.flatten.collect { |x| x['addr'] } : [] end def floating_ip_addresses all_floating = if addresses flattened_values = addresses.values.flatten flattened_values.select { |d| d["OS-EXT-IPS:type"] == "floating" }.collect { |a| a["addr"] } else [] end # Return them all, leading with manually assigned addresses manual = all_addresses.collect { |addr| addr["ip"] } all_floating.sort do |a, b| a_manual = manual.include? a b_manual = manual.include? b if a_manual && !b_manual -1 elsif !a_manual && b_manual 1 else 0 end end all_floating.empty? ? manual : all_floating end def public_ip_addresses if floating_ip_addresses.empty? if addresses addresses.select { |s| s[0] =~ /public/i }.collect { |a| a[1][0]['addr'] } else [] end else floating_ip_addresses end end def floating_ip_address floating_ip_addresses.first end def public_ip_address public_ip_addresses.first end def private_ip_addresses rfc1918_regexp = /(^10\.|^172\.1[6-9]\.|^172\.2[0-9]\.|^172.3[0-1]\.|^192\.168\.)/ almost_private = ip_addresses - public_ip_addresses - floating_ip_addresses almost_private.select { |ip| rfc1918_regexp.match ip } end def private_ip_address private_ip_addresses.first end attr_reader :image_ref attr_writer :image_ref attr_reader :flavor_ref attr_writer :flavor_ref def ready? state == 'ACTIVE' end def failed? state == 'ERROR' end def change_password(admin_password) requires :id service.change_server_password(id, admin_password) true end def rebuild(image_ref, name, admin_pass = nil, metadata = nil, personality = nil) requires :id service.rebuild_server(id, image_ref, name, admin_pass, metadata, personality) true end def resize(flavor_ref) requires :id service.resize_server(id, flavor_ref) true end def revert_resize requires :id service.revert_resize_server(id) true end def confirm_resize requires :id service.confirm_resize_server(id) true end def security_groups if id requires :id groups = service.list_security_groups(:server_id => id).body['security_groups'] groups.map do |group| Fog::OpenStack::Compute::SecurityGroup.new group.merge(:service => service) end else service.security_groups.all end end attr_writer :security_groups def reboot(type = 'SOFT') requires :id service.reboot_server(id, type) true end def stop requires :id service.stop_server(id) end def pause requires :id service.pause_server(id) end def suspend requires :id service.suspend_server(id) end def start requires :id case state.downcase when 'paused' service.unpause_server(id) when 'suspended' service.resume_server(id) else service.start_server(id) end end def shelve requires :id service.shelve_server(id) end def unshelve requires :id service.unshelve_server(id) end def shelve_offload requires :id service.shelve_offload_server(id) end def create_image(name, metadata = {}) requires :id service.create_image(id, name, metadata) end def console(log_length = nil) requires :id service.get_console_output(id, log_length) end def migrate requires :id service.migrate_server(id) end def live_migrate(host, block_migration, disk_over_commit) requires :id service.live_migrate_server(id, host, block_migration, disk_over_commit) end def evacuate(host = nil, on_shared_storage = nil, admin_password = nil) requires :id service.evacuate_server(id, host, on_shared_storage, admin_password) end def associate_address(floating_ip) requires :id service.associate_address id, floating_ip end def disassociate_address(floating_ip) requires :id service.disassociate_address id, floating_ip end def reset_vm_state(vm_state) requires :id service.reset_server_state id, vm_state end attr_writer :min_count attr_writer :max_count def networks service.networks(:server => self) end def volumes requires :id service.volumes.select do |vol| vol.attachments.find { |attachment| attachment["serverId"] == id } end end def volume_attachments requires :id service.get_server_volumes(id).body['volumeAttachments'] end def attach_volume(volume_id, device_name) requires :id service.attach_volume(volume_id, id, device_name) true end def detach_volume(volume_id) requires :id service.detach_volume(id, volume_id) true end def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :flavor_ref, :name requires_one :image_ref, :block_device_mapping, :block_device_mapping_v2 options = { 'personality' => personality, 'accessIPv4' => accessIPv4, 'accessIPv6' => accessIPv6, 'availability_zone' => availability_zone, 'user_data' => user_data_encoded, 'key_name' => key_name, 'config_drive' => config_drive, 'security_groups' => @security_groups, 'min_count' => @min_count, 'max_count' => @max_count, 'nics' => @nics, 'os:scheduler_hints' => @os_scheduler_hints, 'block_device_mapping' => @block_device_mapping, 'block_device_mapping_v2' => @block_device_mapping_v2, } options['metadata'] = metadata.to_hash unless @metadata.nil? options = options.reject { |_key, value| value.nil? } data = service.create_server(name, image_ref, flavor_ref, options) merge_attributes(data.body['server']) true end def setup(credentials = {}) requires :ssh_ip_address, :identity, :public_key, :username ssh = Fog::SSH.new(ssh_ip_address, username, credentials) ssh.run([ %(mkdir .ssh), %(echo "#{public_key}" >> ~/.ssh/authorized_keys), %(passwd -l #{username}), %(echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json), %(echo "#{Fog::JSON.encode(metadata)}" >> ~/metadata.json) ]) rescue Errno::ECONNREFUSED sleep(1) retry end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/server_group.rb000066400000000000000000000012331476630434000256020ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class ServerGroup < Fog::OpenStack::Model identity :id attribute :name attribute :policies, :type => :array attribute :members VALID_SERVER_GROUP_POLICIES = ['affinity', 'anti-affinity', 'soft-affinity', 'soft-anti-affinity'].freeze def self.validate_server_group_policy(policy) raise ArgumentError, "#{policy} is an invalid policy... must use one of #{VALID_SERVER_GROUP_POLICIES.join(', ')}" \ unless VALID_SERVER_GROUP_POLICIES.include? policy true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/server_groups.rb000066400000000000000000000013431476630434000257670ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/server_group' module Fog module OpenStack class Compute class ServerGroups < Fog::OpenStack::Collection model Fog::OpenStack::Compute::ServerGroup def all(options = {}) load_response(service.list_server_groups(options), 'server_groups') end def get(server_group_id) if server_group_id new(service.get_server_group(server_group_id).body['server_group']) end rescue Fog::OpenStack::Compute::NotFound nil end def create(*args) new(service.create_server_group(*args).body['server_group']) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/servers.rb000066400000000000000000000036521476630434000245600ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/server' module Fog module OpenStack class Compute class Servers < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Compute::Server def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg data = service.list_servers_detail(filters) load_response(data, 'servers') end def summary(filters_arg = filters) filters = filters_arg data = service.list_servers(filters) load_response(data, 'servers') end # Creates a new server and populates ssh keys # @return [Fog::OpenStack::Compute::Server] # @raise [Fog::OpenStack::Compute::NotFound] - HTTP 404 # @raise [Fog::OpenStack::Compute::BadRequest] - HTTP 400 # @raise [Fog::OpenStack::Compute::InternalServerError] - HTTP 500 # @raise [Fog::OpenStack::Compute::ServiceError] # @example # service.servers.bootstrap :name => 'bootstrap-server', # :flavor_ref => service.flavors.first.id, # :image_ref => service.images.find {|img| img.name =~ /Ubuntu/}.id, # :public_key_path => '~/.ssh/fog_rsa.pub', # :private_key_path => '~/.ssh/fog_rsa' # def bootstrap(new_attributes = {}) server = create(new_attributes) server.wait_for { ready? } server.setup(:password => server.password) server end def get(server_id) if server = service.get_server_details(server_id).body['server'] new(server) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/service.rb000066400000000000000000000016061476630434000245240ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Service < Fog::OpenStack::Model identity :id attribute :binary attribute :host attribute :state attribute :status attribute :updated_at attribute :zone # detailed attribute :disabled_reason def enable requires :binary, :host service.enable_service(host, binary) end def disable requires :binary, :host service.disable_service(host, binary) end def disable_and_log_reason requires :binary, :host, :disabled_reason service.disable_service_log_reason(host, binary, disabled_reason) end def destroy requires :id service.delete_service(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/services.rb000066400000000000000000000021341476630434000247040ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/service' module Fog module OpenStack class Compute class Services < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Service def all(options = {}) load_response(service.list_services(options), 'services') end alias summary all def details(options = {}) Fog::Logger.deprecation('Calling OpenStack[:compute].services.details is deprecated, use .services.all') all(options) end def get(service_id) # OpenStack API currently does not support getting single service from it # There is a blueprint https://blueprints.launchpad.net/nova/+spec/get-service-by-id # with spec proposal patch https://review.openstack.org/#/c/172412/ but this is abandoned. serv = service.list_services.body['services'].detect do |s| s['id'] == service_id end new(serv) if serv rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/snapshot.rb000066400000000000000000000015351476630434000247240ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'fog/openstack/compute/models/metadata' module Fog module OpenStack class Compute class Snapshot < Fog::OpenStack::Model identity :id attribute :name, :aliases => 'displayName' attribute :description, :aliases => 'displayDescription' attribute :volume_id, :aliases => 'volumeId' attribute :created_at, :aliases => 'createdAt' attribute :status attribute :size def save(force = false) requires :volume_id, :name, :description data = service.create_snapshot(volume_id, name, description, force) merge_attributes(data.body['snapshot']) true end def destroy requires :id service.delete_snapshot(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/snapshots.rb000066400000000000000000000022321476630434000251020ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/snapshot' module Fog module OpenStack class Compute class Snapshots < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Snapshot def all(options = {}) if !options.kind_of?(Hash) if options Fog::Logger.deprecation('Calling OpenStack[:compute].snapshots.all(true) is deprecated, use .snapshots.all') else Fog::Logger.deprecation('Calling OpenStack[:compute].snapshots.all(false) is deprecated, use .snapshots.summary') end load_response(service.list_snapshots(options), 'snapshots') else load_response(service.list_snapshots_detail(options), 'snapshots') end end def summary(options = {}) load_response(service.list_snapshots(options), 'snapshots') end def get(snapshot_id) if snapshot = service.get_snapshot_details(snapshot_id).body['snapshot'] new(snapshot) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/tenant.rb000066400000000000000000000007111476630434000243510ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Compute class Tenant < Fog::OpenStack::Model identity :id attribute :description attribute :enabled attribute :name def to_s name end def usage(start_date, end_date) requires :id service.get_usage(id, start_date, end_date).body['tenant_usage'] end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/tenants.rb000066400000000000000000000011151476630434000245330ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/tenant' module Fog module OpenStack class Compute class Tenants < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Tenant def all load_response(service.list_tenants, 'tenants') end def usages(start_date = nil, end_date = nil, details = false) service.list_usages(start_date, end_date, details).body['tenant_usages'] end def get(id) find { |tenant| tenant.id == id } end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/volume.rb000066400000000000000000000027201476630434000243710ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'fog/openstack/compute/models/metadata' module Fog module OpenStack class Compute class Volume < Fog::OpenStack::Model identity :id attribute :name, :aliases => 'displayName' attribute :description, :aliases => 'displayDescription' attribute :status attribute :size attribute :type, :aliases => 'volumeType' attribute :snapshot_id, :aliases => 'snapshotId' attribute :availability_zone, :aliases => 'availabilityZone' attribute :created_at, :aliases => 'createdAt' attribute :attachments def save requires :name, :description, :size data = service.create_volume(name, description, size, attributes) merge_attributes(data.body['volume']) true end def destroy requires :id service.delete_volume(id) true end def attach(server_id, name) requires :id data = service.attach_volume(id, server_id, name) merge_attributes(:attachments => attachments << data.body['volumeAttachment']) true end def detach(server_id, attachment_id) requires :id service.detach_volume(server_id, attachment_id) true end def ready? status == "available" end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/volume_attachment.rb000066400000000000000000000003701476630434000266000ustar00rootroot00000000000000require 'fog/core/model' module Fog module OpenStack class Compute class VolumeAttachment < Fog::Model identity :id attribute :serverId attribute :volumeId attribute :device end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/volume_attachments.rb000066400000000000000000000007671476630434000267750ustar00rootroot00000000000000require 'fog/core/collection' module Fog module OpenStack class Compute class VolumeAttachments < Fog::Collection model Fog::OpenStack::Compute::VolumeAttachment def get(server_id) if server_id puts service.list_volume_attachments(server_id).body load(service.list_volume_attachments(server_id).body['volumeAttachments']) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/models/volumes.rb000066400000000000000000000021661476630434000245600ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/compute/models/volume' module Fog module OpenStack class Compute class Volumes < Fog::OpenStack::Collection model Fog::OpenStack::Compute::Volume def all(options = true) if !options.kind_of?(Hash) if options Fog::Logger.deprecation('Calling OpenStack[:compute].volumes.all(true) is deprecated, use .volumes.all') else Fog::Logger.deprecation('Calling OpenStack[:compute].volumes.all(false) is deprecated, use .volumes.summary') end load_response(service.list_volumes(options), 'volumes') else load_response(service.list_volumes_detail(options), 'volumes') end end def summary(options = {}) load_response(service.list_volumes(options), 'volumes') end def get(volume_id) if volume = service.get_volume_details(volume_id).body['volume'] new(volume) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/000077500000000000000000000000001476630434000231245ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/compute/requests/add_aggregate_host.rb000066400000000000000000000014001476630434000272370ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def add_aggregate_host(uuid, host_uuid) data = {'add_host' => {'host' => host_uuid}} request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "os-aggregates/#{uuid}/action" ) end end class Mock def add_aggregate_host(_uuid, _host_uuid) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/add_fixed_ip.rb000066400000000000000000000013151476630434000260500ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Add an IP address on a network. # # === Parameters # * server_id <~String> - The ID of the server in which to add an IP to. # * network_id <~String> - The ID of the network the IP should be on. # === Returns # * success <~Boolean> def add_fixed_ip(server_id, network_id) body = { 'addFixedIp' => { 'networkId' => network_id } } server_action(server_id, body).status == 202 end end class Mock def add_fixed_ip(_server_id, _network_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/add_flavor_access.rb000066400000000000000000000014501476630434000270730ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def add_flavor_access(flavor_ref, tenant_id) request( :body => Fog::JSON.encode("addTenantAccess" => { "tenant" => tenant_id }), :expects => [200, 203], :method => 'POST', :path => "flavors/#{flavor_ref}/action" ) end end class Mock def add_flavor_access(flavor_ref, tenant_id) response = Excon::Response.new response.status = 200 response.body = { "flavor_access" => [{"tenant_id" => tenant_id.to_s, "flavor_id" => flavor_ref.to_s}] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/add_security_group.rb000066400000000000000000000007041476630434000273450ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def add_security_group(server_id, group_name) body = {'addSecurityGroup' => {"name" => group_name}} server_action(server_id, body) end end class Mock def add_security_group(_server_id, _group_name) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/allocate_address.rb000066400000000000000000000020601476630434000267400ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def allocate_address(pool = nil) request( :body => Fog::JSON.encode('pool' => pool), :expects => [200, 202], :method => 'POST', :path => 'os-floating-ips' ) end end class Mock def allocate_address(_pool = nil) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-d4a21158-a86c-44a6-983a-e25645907f26", "Content-Type" => "application/json", "Content-Length" => "105", "Date" => Date.new } response.body = { "floating_ip" => { "instance_id" => nil, "ip" => "192.168.27.132", "fixed_ip" => nil, "id" => 4, "pool" => "nova" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/associate_address.rb000066400000000000000000000016251476630434000271350ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def associate_address(server_id, ip_address) body = {"addFloatingIp" => {"address" => ip_address}} server_action(server_id, body) end end class Mock def associate_address(server_id, ip_address) server = data[:servers][server_id] server["addresses"]['mocknet'] ||= [] ip_hash = {"OS-EXT-IPS-MAC:mac_addr" => "fa:16:3e:85:47:40", "version" => 4, "addr" => ip_address, "OS-EXT-IPS:type" => "floating"} server["addresses"]['mocknet'] << ip_hash response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html, charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/attach_volume.rb000066400000000000000000000020751476630434000263100ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def attach_volume(volume_id, server_id, device) data = { 'volumeAttachment' => { 'volumeId' => volume_id.to_s, 'device' => device } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "servers/%s/os-volume_attachments" % [server_id] ) end end class Mock def attach_volume(volume_id, server_id, device) response = Excon::Response.new response.status = 200 data = { 'id' => volume_id, 'volumeId' => volume_id, 'serverId' => server_id, 'device' => device } self.data[:volumes][volume_id]['attachments'] << data self.data[:volumes][volume_id]['status'] = 'in-use' response.body = {'volumeAttachment' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/boot_from_snapshot.rb000066400000000000000000000023251476630434000273600ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def boot_from_snapshot(name, image_ref, flavor_ref, options = {}) data = { 'server' => { 'flavorRef' => flavor_ref, 'imageRef' => image_ref, 'name' => name } } vanilla_options = ['metadata', 'accessIPv4', 'accessIPv6', 'availability_zone', 'user_data', 'block_device_mapping', 'key_name', 'security_groups'] vanilla_options.select { |o| options[o] }.each do |key| data['server'][key] = options[key] end if options['personality'] data['server']['personality'] = [] options['personality'].each do |file| data['server']['personality'] << { 'contents' => Base64.encode64(file['contents']), 'path' => file['path'] } end end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => '/os-volumes_boot' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/change_server_password.rb000066400000000000000000000007331476630434000302110ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def change_server_password(server_id, admin_password) body = {'changePassword' => {'adminPass' => admin_password}} server_action(server_id, body) end end class Mock def change_server_password(_server_id, _admin_password) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/confirm_resize_server.rb000066400000000000000000000006401476630434000300550ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def confirm_resize_server(server_id) body = {'confirmResize' => nil} server_action(server_id, body, 204) end end class Mock def confirm_resize_server(_server_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_aggregate.rb000066400000000000000000000020341476630434000267210ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_aggregate(name, options = {}) data = { 'aggregate' => { 'name' => name } } vanilla_options = [:availability_zone] vanilla_options.select { |o| options[o] }.each do |key| data['aggregate'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "os-aggregates" ) end end class Mock def create_aggregate(_name, _options = {}) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {'aggregate' => data[:aggregates].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_flavor.rb000066400000000000000000000055241476630434000262730ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # PARAMETERS # # name = Name of flavor # ram = Memory in MB # vcpus = Number of VCPUs # disk = Size of local disk in GB # swap = Swap space in MB # rxtx_factor = RX/TX factor def create_flavor(attributes) data = { 'flavor' => { 'name' => attributes[:name], 'ram' => attributes[:ram], 'vcpus' => attributes[:vcpus], 'disk' => attributes[:disk], 'id' => attributes[:flavor_id], 'swap' => attributes[:swap], 'OS-FLV-EXT-DATA:ephemeral' => attributes[:ephemeral], 'os-flavor-access:is_public' => attributes[:is_public], 'rxtx_factor' => attributes[:rxtx_factor] } } request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'POST', :path => 'flavors' ) end end class Mock def create_flavor(attributes) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = { "flavor" => { "vcpus" => attributes[:vcpus], "disk" => attributes[:disk], "name" => attributes[:name], "links" => [ { "href" => "http://192.168.27.100:8774/v1.1/6733e93c5f5c4eb1bcabc6902ba208d6/flavors/11", "rel" => "self" }, { "href" => "http://192.168.27.100:8774/6733e93c5f5c4eb1bcabc6902ba208d6/flavors/11", "rel" => "bookmark" } ], "rxtx_factor" => attributes[:rxtx_factor] || 1.0, "OS-FLV-EXT-DATA:ephemeral" => attributes[:ephemeral] || 0, "os-flavor-access:is_public" => attributes[:is_public] || false, "OS-FLV-DISABLED:disabled" => attributes[:disabled] || false, "ram" => attributes[:ram], "id" => "11", "swap" => attributes[:swap] || "" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_flavor_metadata.rb000066400000000000000000000017431476630434000301320ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_flavor_metadata(flavor_ref, metadata) data = { 'extra_specs' => metadata } request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'POST', :path => "flavors/#{flavor_ref}/os-extra_specs" ) end end class Mock def create_flavor_metadata(_flavor_ref, _metadata) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = {"extra_specs" => { "cpu_arch" => "x86_64" }} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_image.rb000066400000000000000000000027431476630434000260640ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_image(server_id, name, metadata = {}) body = {'createImage' => { 'name' => name, 'metadata' => metadata }} data = server_action(server_id, body) image_id = data.headers["Location"].scan(%r{.*/(.*)}).flatten[0] get_image_details(image_id) end end class Mock def create_image(server_id, name, metadata = {}) response = Excon::Response.new response.status = 202 img_id = Fog::Mock.random_numbers(6).to_s data = { 'id' => img_id, 'server' => {"id" => "3", "links" => [{"href" => "http://nova1:8774/admin/servers/#{server_id}", "rel" => "bookmark"}]}, 'links' => [{"href" => "http://nova1:8774/v1.1/admin/images/#{img_id}", "rel" => "self"}, {"href" => "http://nova1:8774/admin/images/#{img_id}", "rel" => "bookmark"}], 'metadata' => metadata || {}, 'name' => name || "server_#{rand(999)}", 'progress' => 0, 'status' => 'SAVING', 'minDisk' => 0, 'minRam' => 0, 'updated' => "", 'created' => "" } self.data[:last_modified][:images][data['id']] = Time.now self.data[:images][data['id']] = data response.body = {'image' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_key_pair.rb000066400000000000000000000047301476630434000266030ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_key_pair(key_name, public_key = nil, user_id = nil) data = { 'keypair' => { 'name' => key_name } } data['keypair']['public_key'] = public_key unless public_key.nil? data['keypair']['user_id'] = user_id unless user_id.nil? request( :body => Fog::JSON.encode(data), :expects => [200, 201], :method => 'POST', :path => 'os-keypairs' ) end end class Mock def create_key_pair(key_name, _public_key = nil) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-c373a42c-2825-4e60-8d34-99416ea850be", "Content-Type" => "application/json", "Content-Length" => "1289", "Date" => Date.new } response.body = { "keypair" => { "public_key" => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDCdAZLjljntJbLVVkNHjWFSoKen2nZbk39ZfqhZJOMdeFdz02GWBS45rcuboeGg/gozKRwsLu4N6NLPlYtbK/NapJIvgO/djBp+FQG1QZNtLPsx7j4hVJac3yISGms+Xtu4cEv6j5sFDzAgTQbWez0Z1+9qOq9ngdaoW+YClfQ== vagrant@nova\n", "private_key" => "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDCdAZLjljn1tJbLVVkNHjWFSoKen2nZbk39ZfqhZJOMdeFdz02\nGWBS45rcuHboeGg/gozKRwsLu4N6NLPlYtbK/NapJIvgO/djBp+FQG1QZNtLPsx7\nj4hVJac3yISGms+Xtu4cEv6j5sFDzAgTQbWez0Z1+9qOq9ngdaoW+YClfQIDAQAB\nAoGBALBoT9m1vuQ82EONQf2RONqHAsfUzi/SMhEZRgOlv9AemXZkcWyl4uPvxmtd\nEcreiTystAtCHjw7lhCExXthipevUjtIAAt+b3pMn6Oyjad3IRvde6atMdjrje43\n/nftYtuXYyJTsvwEvLYqSioLQ0Nn/XDKhOpcM5tejDHOH35lAkEA+H4r7y9X521u\nIABVAezBWaT/wvdMjx5cwfyYEQjnI1bxfRIqkgoY5gDDBdVbT75UTsHHbHLORQcw\nRjRvS2zgewJBAMhT6eyMonJvHHvC5RcchcY+dWkscIKoOzeyUKMb+7tERQa9/UN2\njYb+jdM0VyL0ruLFwYtl2m34gfmhcXgIvGcCQGzKMEnjHEUBr7jq7EyPbobkqeSd\niDMQQ+PZxmmO0EK0ib0L+v881HG926PuKK/cz+Q7Cif8iznFT+ksg50t6YkCQQC9\nwfcAskqieSuS9A9LcCIrojhXctf0e+T0Ij2N89DlF4sHEuqXf/IZ4IB5gsfTfdE3\nUDnAkK9yogaEbu/r0uKbAkEAy5kl71bIqvKTKsY2mES9ziVxfftl/9UIi5LI+QHb\nmC/c6cTrGVCM71fi2GMxGgBeEea4+7xwoWTL4CxA00kmTg==\n-----END RSA PRIVATE KEY-----\n", "user_id" => "admin", "name" => key_name, "fingerprint" => "97:86:f4:15:68:0c:7b:a7:e5:8f:f0:bd:1f:27:65:ad" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_os_interface.rb000066400000000000000000000021571476630434000274420ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # === Parameters # * server_id <~String> # * options <~Hash> def create_os_interface(server_id, options={}) body = { 'interfaceAttachment' => {} } if options[:port_id] body['interfaceAttachment']['port_id'] = options[:port_id] elsif options[:net_id] body['interfaceAttachment']['net_id'] = options[:net_id] end if options[:ip_address] body['interfaceAttachment']['fixed_ips'] = {ip_address: options[:ip_address]} end request( :body => Fog::JSON.encode(body), :expects => [200, 201, 202, 204], :method => 'POST', :path => "servers/#{server_id}/os-interface" ) end end class Mock def create_os_interface(server_id, options={}) Excon::Response.new( :body => {'interfaceAttachment' => data[:os_interfaces].first}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_security_group.rb000066400000000000000000000032141476630434000300570ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_security_group(name, description) data = { 'security_group' => { 'name' => name, 'description' => description } } request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'POST', :path => 'os-security-groups' ) end end class Mock def create_security_group(name, description) Fog::OpenStack::Identity.new(:openstack_auth_url => credentials[:openstack_auth_url], :openstack_identity_api_version => 'v2.0') tenant_id = Fog::OpenStack::Identity::V2::Mock.data[current_tenant][:tenants].keys.first security_group_id = Fog::Mock.random_numbers(2).to_i + 1 data[:security_groups][security_group_id.to_s] = { 'tenant_id' => tenant_id, 'rules' => [], 'id' => security_group_id, 'name' => name, 'description' => description } response = Excon::Response.new response.status = 200 response.headers = { 'X-Compute-Request-Id' => "req-#{Fog::Mock.random_hex(32)}", 'Content-Type' => 'application/json', 'Content-Length' => Fog::Mock.random_numbers(3).to_s, 'Date' => Date.new } response.body = { 'security_group' => data[:security_groups][security_group_id.to_s] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_security_group_rule.rb000066400000000000000000000035731476630434000311160ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id = nil) data = { 'security_group_rule' => { 'parent_group_id' => parent_group_id, 'ip_protocol' => ip_protocol, 'from_port' => from_port, 'to_port' => to_port, 'cidr' => cidr, 'group_id' => group_id } } request( :expects => 200, :method => 'POST', :body => Fog::JSON.encode(data), :path => 'os-security-group-rules' ) end end class Mock def create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id = nil) parent_group_id = parent_group_id.to_i response = Excon::Response.new response.status = 200 response.headers = { 'X-Compute-Request-Id' => "req-#{Fog::Mock.random_hex(32)}", 'Content-Type' => 'application/json', 'Content-Length' => Fog::Mock.random_numbers(3).to_s, 'Date' => Date.new } rule = { 'id' => Fog::Mock.random_numbers(2).to_i, 'from_port' => from_port, 'group' => group_id || {}, 'ip_protocol' => ip_protocol, 'to_port' => to_port, 'parent_group_id' => parent_group_id, 'ip_range' => { 'cidr' => cidr } } data[:security_groups][parent_group_id.to_s]['rules'].push(rule) response.body = { 'security_group_rule' => rule } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_server.rb000066400000000000000000000172061476630434000263100ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_server(name, image_ref, flavor_ref, options = {}) data = { 'server' => { 'flavorRef' => flavor_ref, 'name' => name } } data['server']['imageRef'] = image_ref if image_ref vanilla_options = ['metadata', 'accessIPv4', 'accessIPv6', 'availability_zone', 'user_data', 'key_name', 'adminPass', 'config_drive', 'min_count', 'max_count', 'return_reservation_id'] vanilla_options.select { |o| options[o] }.each do |key| data['server'][key] = options[key] end if options['security_groups'] # security names requires a hash with a name prefix data['server']['security_groups'] = Array(options['security_groups']).map do |sg| name = if sg.kind_of?(Fog::OpenStack::Compute::SecurityGroup) sg.name else sg end {:name => name} end end if options['personality'] data['server']['personality'] = [] options['personality'].each do |file| data['server']['personality'] << { 'contents' => Base64.encode64(file['contents'] || file[:contents]), 'path' => file['path'] || file[:path] } end end if options['nics'] data['server']['networks'] = Array(options['nics']).map do |nic| neti = {} neti['uuid'] = (nic['net_id'] || nic[:net_id]) unless (nic['net_id'] || nic[:net_id]).nil? neti['fixed_ip'] = (nic['v4_fixed_ip'] || nic[:v4_fixed_ip]) unless (nic['v4_fixed_ip'] || nic[:v4_fixed_ip]).nil? neti['port'] = (nic['port_id'] || nic[:port_id]) unless (nic['port_id'] || nic[:port_id]).nil? neti end end if options['os:scheduler_hints'] data['os:scheduler_hints'] = options['os:scheduler_hints'] end if (block_device_mapping = options['block_device_mapping_v2']) data['server']['block_device_mapping_v2'] = [block_device_mapping].flatten.collect do |mapping| entered_block_device_mapping = {} [:boot_index, :delete_on_termination, :destination_type, :device_name, :device_type, :disk_bus, :guest_format, :source_type, :uuid, :volume_size].each do |index| entered_block_device_mapping[index.to_s] = mapping[index] if mapping.key?(index) end entered_block_device_mapping end elsif (block_device_mapping = options['block_device_mapping']) data['server']['block_device_mapping'] = [block_device_mapping].flatten.collect do |mapping| { 'delete_on_termination' => mapping[:delete_on_termination], 'device_name' => mapping[:device_name], 'volume_id' => mapping[:volume_id], 'volume_size' => mapping[:volume_size], } end end path = options['block_device_mapping'] ? 'os-volumes_boot' : 'servers' request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => path ) end end class Mock def create_server(name, image_ref, flavor_ref, options = {}) response = Excon::Response.new response.status = 202 server_id = Fog::Mock.random_numbers(6).to_s identity = Fog::OpenStack::Identity.new(:openstack_auth_url => credentials[:openstack_auth_url], :openstack_identity_api_version => 'v2.0') user = identity.users.find do |u| u.name == @openstack_username end user_id = if user user.id else response = identity.create_user(@openstack_username, 'password', "#{@openstack_username}@example.com") response.body["user"]["id"] end mock_data = { 'addresses' => {"Private" => [{"addr" => Fog::Mock.random_ip}]}, 'flavor' => {"id" => flavor_ref, "links" => [{"href" => "http://nova1:8774/admin/flavors/1", "rel" => "bookmark"}]}, 'id' => server_id, 'image' => {"id" => image_ref, "links" => [{"href" => "http://nova1:8774/admin/images/#{image_ref}", "rel" => "bookmark"}]}, 'links' => [{"href" => "http://nova1:8774/v1.1/admin/servers/5", "rel" => "self"}, {"href" => "http://nova1:8774/admin/servers/5", "rel" => "bookmark"}], 'hostId' => "123456789ABCDEF01234567890ABCDEF", 'metadata' => options['metadata'] || {}, 'name' => name || "server_#{rand(999)}", 'accessIPv4' => options['accessIPv4'] || "", 'accessIPv6' => options['accessIPv6'] || "", 'progress' => 0, 'status' => 'BUILD', 'created' => '2012-09-27T00:04:18Z', 'updated' => '2012-09-27T00:04:27Z', 'user_id' => user_id, 'config_drive' => options['config_drive'] || '', } nics = options['nics'] if nics nics.each do |_nic| mock_data["addresses"].merge!( "Public" => [{'addr' => Fog::Mock.random_ip}] ) end end response_data = if options['return_reservation_id'] == 'True' {'reservation_id' => "r-#{Fog::Mock.random_numbers(6)}"} else { 'adminPass' => 'password', 'id' => server_id, 'links' => mock_data['links'], } end if block_devices = options["block_device_mapping_v2"] block_devices.each { |bd| volumes.get(bd[:uuid]).attach(server_id, bd[:device_name]) } elsif block_device = options["block_device_mapping"] volumes.get(block_device[:volume_id]).attach(server_id, block_device[:device_name]) end data[:last_modified][:servers][server_id] = Time.now data[:servers][server_id] = mock_data security_groups = options['security_groups'] if security_groups groups = Array(security_groups).map do |sg| if sg.kind_of?(Fog::OpenStack::Compute::SecurityGroup) sg.name else sg end end data[:server_security_group_map][server_id] = groups response_data['security_groups'] = groups end if options['os:scheduler_hints'] && options['os:scheduler_hints']['group'] group = data[:server_groups][options['os:scheduler_hints']['group']] group[:members] << server_id if group end response.body = if options['return_reservation_id'] == 'True' response_data else {'server' => response_data} end response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_server_group.rb000066400000000000000000000015341476630434000275210ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_server_group(name, policy) Fog::OpenStack::Compute::ServerGroup.validate_server_group_policy policy body = {'server_group' => { 'name' => name, 'policies' => [policy] }} request( :body => Fog::JSON.encode(body), :expects => 200, :method => 'POST', :path => 'os-server-groups' ) end end class Mock def create_server_group(name, policy) Fog::OpenStack::Compute::ServerGroup.validate_server_group_policy policy id = SecureRandom.uuid data[:server_groups][id] = {:name => name, :policies => [policy], :members => []} get_server_group id end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_snapshot.rb000066400000000000000000000027521476630434000266410ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def create_snapshot(volume_id, name, description, force = false) data = { 'snapshot' => { 'volume_id' => volume_id, 'display_name' => name, 'display_description' => description, 'force' => force } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "os-snapshots" ) end end class Mock def create_snapshot(volume_id, name, description, _force = false) volume_response = get_volume_details(volume_id) volume = volume_response.data[:body]['volume'] if volume.nil? raise Fog::OpenStack::Compute::NotFound else response = Excon::Response.new data = { "status" => "availble", "name" => name, "created_at" => Time.now, "description" => description, "volume_id" => volume_id, "id" => Fog::Mock.random_numbers(2), "size" => volume['size'] } self.data[:snapshots][data['id']] = data response.body = {"snapshot" => data} response.status = 202 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/create_volume.rb000066400000000000000000000032771476630434000263140ustar00rootroot00000000000000# module Fog module OpenStack class Compute # class Real def create_volume(name, description, size, options = {}) data = { 'volume' => { 'display_name' => name, 'display_description' => description, 'size' => size } } vanilla_options = [ :snapshot_id, :availability_zone, :volume_type, :metadata ] vanilla_options.select { |o| options[o] }.each do |key| data['volume'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => 'os-volumes' ) end end # class Mock def create_volume(name, description, size, options = {}) response = Excon::Response.new response.status = 202 data = {'id' => Fog::Mock.random_numbers(2), 'displayName' => name, 'displayDescription' => description, 'size' => size, 'status' => 'creating', 'snapshotId' => options[:snapshot_id], 'volumeType' => options[:volume_type] || 'None', 'availabilityZone' => options[:availability_zone] || 'nova', 'createdAt' => Time.now.strftime('%FT%T.%6N'), 'attachments' => [], 'metadata' => options[:metadata] || {}} self.data[:volumes][data['id']] = data response.body = {'volume' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_aggregate.rb000066400000000000000000000012031476630434000267150ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_aggregate(uuid) request( :expects => [200, 202, 204], :method => 'DELETE', :path => "os-aggregates/#{uuid}" ) end end class Mock def delete_aggregate(_uuid) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_flavor.rb000066400000000000000000000011721476630434000262650ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_flavor(flavor_id) request( :expects => 202, :method => 'DELETE', :path => "flavors/#{flavor_id}" ) end end class Mock def delete_flavor(_flavor_id) response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_flavor_metadata.rb000066400000000000000000000014541476630434000301300ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_flavor_metadata(flavor_ref, key) request( :expects => 200, :method => 'DELETE', :path => "flavors/#{flavor_ref}/os-extra_specs/#{key}" ) end end class Mock def delete_flavor_metadata(_flavor_ref, _key) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = nil response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_image.rb000066400000000000000000000017371476630434000260650ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end end class Mock def delete_image(image_id) response = Excon::Response.new image = list_images_detail.body['images'].find { |im| im['id'] == image_id } if image if image['status'] == 'SAVING' response.status = 409 raise(Excon::Errors.status_error({:expects => 202}, response)) else data[:last_modified][:images].delete(image_id) data[:images].delete(image_id) response.status = 202 end response else response.status = 400 raise(Excon::Errors.status_error({:expects => 202}, response)) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_key_pair.rb000066400000000000000000000014321476630434000265760ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_key_pair(key_name, user_id = nil) options = {} options[:user_id] = user_id unless user_id.nil? request( :expects => [202, 204], :method => 'DELETE', :path => "os-keypairs/#{Fog::OpenStack.escape(key_name)}" ) end end class Mock def delete_key_pair(_key_name) response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_meta.rb000066400000000000000000000017071476630434000257260ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_meta(collection_name, parent_id, key) request( :expects => 204, :method => 'DELETE', :path => "#{collection_name}/#{parent_id}/metadata/#{key}" ) end end class Mock def delete_meta(collection_name, parent_id, _key) if collection_name == "images" unless list_images_detail.body['images'].find { |image| image['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end if collection_name == "servers" unless list_servers_detail.body['servers'].find { |server| server['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_metadata.rb000066400000000000000000000010221476630434000265460ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_metadata(collection_name, parent_id, key) request( :expects => 204, :method => 'DELETE', :path => "#{collection_name}/#{parent_id}/metadata/#{key}" ) end end class Mock def delete_metadata(_collection_name, _parent_id, _key) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_os_interface.rb000066400000000000000000000010171476630434000274330ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # === Parameters # * server_id <~String> # * port_id <~String> def delete_os_interface(server_id, port_id) request( :expects => [200, 202,204], :method => 'DELETE', :path => "servers/#{server_id}/os-interface/#{port_id}" ) end end class Mock def delete_os_interface(server_id, port_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_security_group.rb000066400000000000000000000014111476630434000300530ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_security_group(security_group_id) request( :expects => 202, :method => 'DELETE', :path => "os-security-groups/#{security_group_id}" ) end end class Mock def delete_security_group(security_group_id) data[:security_groups].delete security_group_id.to_s response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_security_group_rule.rb000066400000000000000000000017171476630434000311130ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_security_group_rule(security_group_rule_id) request( :expects => 202, :method => 'DELETE', :path => "os-security-group-rules/#{security_group_rule_id}" ) end end class Mock def delete_security_group_rule(security_group_rule_id) security_group = data[:security_groups].values.find { |sg| sg["rules"].find { |sgr| sgr["id"].to_s == security_group_rule_id.to_s } } security_group["rules"].reject! { |sgr| sgr["id"] == security_group_rule_id } response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_server.rb000066400000000000000000000023101476630434000262750ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_server(server_id) request( :expects => 204, :method => 'DELETE', :path => "servers/#{server_id}" ) end end class Mock def delete_server(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server if server['status'] == 'BUILD' response.status = 409 raise(Excon::Errors.status_error({:expects => 204}, response)) else data[:last_modified][:servers].delete(server_id) data[:servers].delete(server_id) response.status = 204 server_groups = data[:server_groups] if server_groups group_id, = server_groups.find { |_id, grp| grp[:members].include?(server_id) } server_groups[group_id][:members] -= [server_id] if group_id end end response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_server_group.rb000066400000000000000000000012711476630434000275160ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_server_group(group_id) request( :expects => 204, :method => 'DELETE', :path => "os-server-groups/#{group_id}" ) end end class Mock def delete_server_group(group_id) response = Excon::Response.new response.status = data[:server_groups].delete(group_id) ? 204 : 404 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_service.rb000066400000000000000000000015521476630434000264360ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_service(uuid, optional_params = nil) # Encode all params optional_params = optional_params.each { |k, v| optional_params[k] = URI.encode(v) } if optional_params request( :expects => [202, 204], :method => 'DELETE', :path => "os-services/#{uuid}", :query => optional_params ) end end class Mock def delete_service(_host, _binary, _optional_params = nil) response = Excon::Response.new response.status = 204 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_snapshot.rb000066400000000000000000000012641476630434000266350ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_snapshot(snapshot_id) request( :expects => 202, :method => 'DELETE', :path => "os-snapshots/#{snapshot_id}" ) end end class Mock def delete_snapshot(snapshot_id) response = Excon::Response.new response.status = 204 if list_snapshots_detail.body['snapshots'].find { |snap| snap['id'] == snapshot_id } data[:snapshots].delete(snapshot_id) else raise Fog::OpenStack::Compute::NotFound end response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/delete_volume.rb000066400000000000000000000012321476630434000263000ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def delete_volume(volume_id) request( :expects => 202, :method => 'DELETE', :path => "os-volumes/#{volume_id}" ) end end class Mock def delete_volume(volume_id) response = Excon::Response.new if list_volumes.body['volumes'].map { |v| v['id'] }.include? volume_id data[:volumes].delete(volume_id) response.status = 204 response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/detach_volume.rb000066400000000000000000000015121476630434000262670ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def detach_volume(server_id, attachment_id) request( :expects => 202, :method => 'DELETE', :path => "servers/%s/os-volume_attachments/%s" % [server_id, attachment_id] ) end end class Mock def detach_volume(server_id, attachment_id) response = Excon::Response.new if data[:volumes][attachment_id] && data[:volumes][attachment_id]['attachments'].reject! { |attachment| attachment['serverId'] == server_id } data[:volumes][attachment_id]['status'] = 'available' response.status = 202 response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/disable_service.rb000066400000000000000000000017371476630434000266040ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def disable_service(host, binary, optional_params = nil) data = {"host" => host, "binary" => binary} # Encode all params optional_params = optional_params.each { |k, v| optional_params[k] = URI.encode(v) } if optional_params request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "os-services/disable", :query => optional_params ) end end class Mock def disable_service(_host, _binary, _optional_params = nil) response = Excon::Response.new response.status = 200 response.body = { "service" => { "host" => "host1", "binary" => "nova-compute", "status" => "disabled" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/disable_service_log_reason.rb000066400000000000000000000022201476630434000310000ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def disable_service_log_reason(host, binary, disabled_reason, optional_params = nil) data = {"host" => host, "binary" => binary, "disabled_reason" => disabled_reason} # Encode all params optional_params = optional_params.each { |k, v| optional_params[k] = URI.encode(v) } if optional_params request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "os-services/disable-log-reason", :query => optional_params ) end end class Mock def disable_service_log_reason(_host, _binary, _disabled_reason, _optional_params = nil) response = Excon::Response.new response.status = 200 response.body = { "service" => { "host" => "host1", "binary" => "nova-compute", "status" => "disabled", "disabled_reason" => "test2" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/disassociate_address.rb000066400000000000000000000012001476630434000276220ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def disassociate_address(server_id, ip_address) body = {"removeFloatingIp" => {"address" => ip_address}} server_action(server_id, body) end end class Mock def disassociate_address(_server_id, _ip_address) response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html, charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/enable_service.rb000066400000000000000000000017331476630434000264230ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def enable_service(host, binary, optional_params = nil) data = {"host" => host, "binary" => binary} # Encode all params optional_params = optional_params.each { |k, v| optional_params[k] = URI.encode(v) } if optional_params request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "os-services/enable", :query => optional_params ) end end class Mock def enable_service(_host, _binary, _optional_params = nil) response = Excon::Response.new response.status = 200 response.body = { "service" => { "host" => "host1", "binary" => "nova-compute", "status" => "enabled" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/evacuate_server.rb000066400000000000000000000015531476630434000266400ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def evacuate_server(server_id, host = nil, on_shared_storage = nil, admin_password = nil) evacuate = {} evacuate['host'] = host if host if !microversion_newer_than?('2.13') && on_shared_storage evacuate['onSharedStorage'] = on_shared_storage end evacuate['adminPass'] = admin_password if admin_password body = { 'evacuate' => evacuate } server_action(server_id, body) end end class Mock def evacuate_server(_server_id, _host, _on_shared_storage, _admin_password = nil) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_address.rb000066400000000000000000000017641476630434000257450ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_address(address_id) request( :expects => [200], :method => 'GET', :path => "os-floating-ips/#{address_id}" ) end end class Mock def get_address(_address_id) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-d4a21158-a86c-44a6-983a-e25645907f26", "Content-Type" => "application/json", "Content-Length" => "105", "Date" => Date.new } response.body = { "floating_ip" => { "instance_id" => nil, "ip" => "192.168.27.129", "fixed_ip" => nil, "id" => 1, "pool" => "nova" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_aggregate.rb000066400000000000000000000010251476630434000262340ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_aggregate(uuid) request( :expects => [200], :method => 'GET', :path => "os-aggregates/#{uuid}" ) end end class Mock def get_aggregate(_uuid) response = Excon::Response.new response.status = 2040 response.body = {'aggregate' => data[:aggregates].first.merge("hosts" => [])} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_console_output.rb000066400000000000000000000007751476630434000274030ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_console_output(server_id, log_length) body = { 'os-getConsoleOutput' => { 'length' => log_length } } server_action(server_id, body) end end class Mock def get_console_output(_server_id, _log_length) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_flavor_details.rb000066400000000000000000000035031476630434000273070ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_flavor_details(flavor_ref) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{flavor_ref}" ) end end class Mock def get_flavor_details(flavor_ref) response = Excon::Response.new flavor = { '1' => {'id' => '1', 'name' => '256 server', 'ram' => 256, 'disk' => 10, 'swap' => '1', 'vcpus' => 1, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '2' => {'id' => '2', 'name' => '512 server', 'ram' => 512, 'disk' => 20, 'swap' => '1', 'vcpus' => 2, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '3' => {'id' => '3', 'name' => '1GB server', 'ram' => 1024, 'disk' => 40, 'swap' => '2', 'vcpus' => 2, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '4' => {'id' => '4', 'name' => '2GB server', 'ram' => 2048, 'disk' => 80, 'swap' => '4', 'vcpus' => 4, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '5' => {'id' => '5', 'name' => '4GB server', 'ram' => 4096, 'disk' => 160, 'swap' => '8', 'vcpus' => 8, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '6' => {'id' => '6', 'name' => '8GB server', 'ram' => 8192, 'disk' => 320, 'swap' => '16', 'vcpus' => 16, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, '7' => {'id' => '7', 'name' => '15.5GB server', 'ram' => 15872, 'disk' => 620, 'swap' => '32', 'vcpus' => 32, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []} }[flavor_ref] if flavor response.status = 200 response.body = { 'flavor' => flavor } response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_flavor_metadata.rb000066400000000000000000000011051476630434000274360ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_flavor_metadata(flavor_ref) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{flavor_ref}/os-extra_specs" ) end end class Mock def get_flavor_metadata(_flavor_ref) response = Excon::Response.new response.status = 200 response.body = {"extra_specs" => { "cpu_arch" => "x86_64" }} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_host_details.rb000066400000000000000000000033571476630434000270020ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_host_details(host) request( :expects => [200, 203], :method => 'GET', :path => "os-hosts/#{host}" ) end end class Mock def get_host_details(_host) response = Excon::Response.new response.status = 200 response.body = {"host" => [ {"resource" => { "project" => "(total)", "memory_mb" => 64427, "host" => "cn28.la-1-3.morphcloud.net", "cpu" => 12, "disk_gb" => 1608 }}, {"resource" => { "project" => "(used_now)", "memory_mb" => 1753, "host" => "cn28.la-1-3.morphcloud.net", "cpu" => 3, "disk_gb" => 33 }}, {"resource" => { "project" => "(used_max)", "memory_mb" => 7168, "host" => "cn28.la-1-3.morphcloud.net", "cpu" => 3, "disk_gb" => 45 }}, {"resource" => { "project" => "bf8301f5164f4790889a1bc2bfb16d99", "memory_mb" => 5120, "host" => "cn28.la-1-3.morphcloud.net", "cpu" => 2, "disk_gb" => 35 }}, {"resource" => { "project" => "3bb4d0301c5f47d5b4d96a361fcf96f4", "memory_mb" => 2048, "host" => "cn28.la-1-3.morphcloud.net", "cpu" => 1, "disk_gb" => 10 }} ]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_hypervisor.rb000066400000000000000000000037331476630434000265300ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_hypervisor(hypervisor_id) request( :expects => 200, :method => 'GET', :path => "os-hypervisors/#{hypervisor_id}" ) end end class Mock def get_hypervisor(hypervisor_id) response = Excon::Response.new response.status = 200 response.body = { "hypervisor" => { "cpu_info" => { "arch" => "x86_64", "model" => "Nehalem", "vendor" => "Intel", "features" => [ "pge", "clflush" ], "topology" => { "cores" => 1, "threads" => 1, "sockets" => 4 } }, "current_workload" => 0, "status" => "enabled", "state" => "up", "disk_available_least" => 0, "host_ip" => "1.1.1.1", "free_disk_gb" => 1028, "free_ram_mb" => 7680, "hypervisor_hostname" => "fake-mini", "hypervisor_type" => "fake", "hypervisor_version" => 1000, "id" => hypervisor_id, "local_gb" => 1028, "local_gb_used" => 0, "memory_mb" => 8192, "memory_mb_used" => 512, "running_vms" => 0, "service" => { "host" => "host1", "id" => 7, "disabled_reason" => null }, "vcpus" => 1, "vcpus_used" => 0 } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_hypervisor_statistics.rb000066400000000000000000000021201476630434000307670ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_hypervisor_statistics(_tenant_id) request( :expects => 200, :method => 'GET', :path => "os-hypervisors/statistics" ) end end class Mock def get_hypervisor_statistics(_tenant_id) response = Excon::Response.new response.status = 200 response.body = { "hypervisor_statistics" => { "count" => 1, "current_workload" => 0, "disk_available_least" => 0, "free_disk_gb" => 1028, "free_ram_mb" => 7680, "local_gb" => 1028, "local_gb_used" => 0, "memory_mb" => 8192, "memory_mb_used" => 512, "running_vms" => 0, "vcpus" => 1, "vcpus_used" => 0 } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_image_details.rb000066400000000000000000000013121476630434000270740ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_image_details(image_id) request( :expects => [200, 203], :method => 'GET', :path => "images/#{image_id}" ) end end class Mock def get_image_details(image_id) response = Excon::Response.new image = list_images_detail.body['images'].find { |im| im['id'] == image_id } if image response.status = [200, 203][rand(2)] response.body = {'image' => image} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_key_pair.rb000066400000000000000000000050661476630434000261220ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_key_pair(key_name) request( :expects => 200, :method => 'GET', :path => "os-keypairs/#{Fog::OpenStack.escape(key_name)}" ) end end class Mock def delete_key_pair(key_name) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-c373a42c-2825-4e60-8d34-99416ea850be", "Content-Type" => "application/json", "Content-Length" => "1289", "Date" => Date.new } response.body = { "keypair" => { "public_key" => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDCdAZLjljntJbLVVkNHjWFSoKen2nZbk39ZfqhZJOMdeFdz"\ "02GWBS45rcuboeGg/gozKRwsLu4N6NLPlYtbK/NapJIvgO/djBp+FQG1QZNtLPsx7j4hVJac3yISGms+Xtu4c"\ "Ev6j5sFDzAgTQbWez0Z1+9qOq9ngdaoW+YClfQ== vagrant@nova\n", "private_key" => "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDCdAZLjljn1tJbLVVkNHjWFSoKen2nZbk39Zfq"\ "hZJOMdeFdz02\nGWBS45rcuHboeGg/gozKRwsLu4N6NLPlYtbK/NapJIvgO/djBp+FQG1QZNtLPsx7\nj4hVJ"\ "ac3yISGms+Xtu4cEv6j5sFDzAgTQbWez0Z1+9qOq9ngdaoW+YClfQIDAQAB\nAoGBALBoT9m1vuQ82EONQf2R"\ "ONqHAsfUzi/SMhEZRgOlv9AemXZkcWyl4uPvxmtd\nEcreiTystAtCHjw7lhCExXthipevUjtIAAt+b3pMn6O"\ "yjad3IRvde6atMdjrje43\n/nftYtuXYyJTsvwEvLYqSioLQ0Nn/XDKhOpcM5tejDHOH35lAkEA+H4r7y9X52"\ "1u\nIABVAezBWaT/wvdMjx5cwfyYEQjnI1bxfRIqkgoY5gDDBdVbT75UTsHHbHLORQcw\nRjRvS2zgewJBAMh"\ "T6eyMonJvHHvC5RcchcY+dWkscIKoOzeyUKMb+7tERQa9/UN2\njYb+jdM0VyL0ruLFwYtl2m34gfmhcXgIvG"\ "cCQGzKMEnjHEUBr7jq7EyPbobkqeSd\niDMQQ+PZxmmO0EK0ib0L+v881HG926PuKK/cz+Q7Cif8iznFT+ksg"\ "50t6YkCQQC9\nwfcAskqieSuS9A9LcCIrojhXctf0e+T0Ij2N89DlF4sHEuqXf/IZ4IB5gsfTfdE3\nUDnAkK"\ "9yogaEbu/r0uKbAkEAy5kl71bIqvKTKsY2mES9ziVxfftl/9UIi5LI+QHb\nmC/c6cTrGVCM71fi2GMxGgBeE"\ "ea4+7xwoWTL4CxA00kmTg==\n-----END RSA PRIVATE KEY-----\n", "user_id" => "admin", "name" => key_name, "fingerprint" => "97:86:f4:15:68:0c:7b:a7:e5:8f:f0:bd:1f:27:65:ad" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_limits.rb000066400000000000000000000057421476630434000256210ustar00rootroot00000000000000module Fog module OpenStack class Compute # http://developer.openstack.org/api-ref-compute-v2.1.html#showlimits class Real def get_limits(options = {}) request( :expects => 200, :method => 'GET', :path => '/limits', :query => options ) end end class Mock def get_limits(_options = {}) rate_limits = [ {'regex' => '.*', 'limit' => [ {'next-available' => '2012-11-22T16:13:44Z', 'unit' => 'MINUTE', 'verb' => 'POST', 'remaining' => 9, 'value' => 10}, {'next-available' => '2012-11-23T00:46:14Z', 'unit' => 'MINUTE', 'verb' => 'PUT', 'remaining' => 10, 'value' => 10}, {'next-available' => '2012-11-22T16:14:30Z', 'unit' => 'MINUTE', 'verb' => 'DELETE', 'remaining' => 99, 'value' => 100} ], 'uri' => '*'}, {'regex' => '^/servers', 'limit' => [ {'next-available' => '2012-11-23T00:46:14Z', 'unit' => 'DAY', 'verb' => 'POST', 'remaining' => 50, 'value' => 50} ], 'uri' => '*/servers'}, {'regex' => '.*changes-since.*', 'limit' => [ {'next-available' => '2012-11-23T00:46:14Z', 'unit' => 'MINUTE', 'verb' => 'GET', 'remaining' => 3, 'value' => 3} ], 'uri' => '*changes-since*'} ] absolute_limits = { # Max 'maxServerMeta' => 128, 'maxTotalInstances' => 10, 'maxPersonality' => 5, 'maxImageMeta' => 128, 'maxPersonalitySize' => 10240, 'maxSecurityGroupRules' => 20, 'maxTotalKeypairs' => 100, 'maxSecurityGroups' => 10, 'maxTotalCores' => 20, 'maxTotalFloatingIps' => 10, 'maxTotalRAMSize' => 51200, # Used 'totalCoresUsed' => -1, 'totalRAMUsed' => -2048, 'totalInstancesUsed' => -1, 'totalSecurityGroupsUsed' => 0, 'totalFloatingIpsUsed' => 0 } Excon::Response.new( :status => 200, :body => { 'limits' => { 'rate' => rate_limits, 'absolute' => absolute_limits } } ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_metadata.rb000066400000000000000000000010711476630434000260670ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_metadata(collection_name, parent_id, key) request( :expects => [200, 203], :method => 'GET', :path => "#{collection_name}/#{parent_id}/metadata/#{key}" ) end end class Mock def get_metadata(_collection_name, _parent_id, _key) response = Excon::Response.new response.status = 200 response.body = {'meta' => {}} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_os_interface.rb000066400000000000000000000010631476630434000267510ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_os_interface(server_id,port_id) request( :expects => [200, 202, 203], :method => 'GET', :path => "servers/#{server_id}/os-interface/#{port_id}" ) end end class Mock def get_os_interface(server_id,port_id) Excon::Response.new( :body => {'interfaceAttachment' => data[:os_interfaces].first}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_quota.rb000066400000000000000000000011031476630434000254340ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_quota(tenant_id) request( :expects => 200, :method => 'GET', :path => "/os-quota-sets/#{tenant_id}" ) end end class Mock def get_quota(tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota_set' => (data[:quota_updated] || data[:quota]).merge('id' => tenant_id) } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_quota_defaults.rb000066400000000000000000000011041476630434000273240ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_quota_defaults(tenant_id) request( :expects => 200, :method => 'GET', :path => "/os-quota-sets/#{tenant_id}/defaults" ) end end class Mock def get_quota_defaults(tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota_set' => data[:quota].merge('id' => tenant_id) } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_security_group.rb000066400000000000000000000021331476630434000273720ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_security_group(security_group_id) request( :expects => [200], :method => 'GET', :path => "os-security-groups/#{security_group_id}" ) end end class Mock def get_security_group(security_group_id) security_group = data[:security_groups][security_group_id.to_s] response = Excon::Response.new if security_group response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-63a90344-7c4d-42e2-936c-fd748bced1b3", "Content-Type" => "application/json", "Content-Length" => "167", "Date" => Date.new } response.body = { "security_group" => security_group } else raise Fog::OpenStack::Compute::NotFound, "Security group #{security_group_id} does not exist" end response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_security_group_rule.rb000066400000000000000000000023771476630434000304330ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_security_group_rule(security_group_rule_id) request( :expects => [200], :method => 'GET', :path => "os-security-group-rules/#{security_group_rule_id}" ) end end class Mock def get_security_group_rule(security_group_rule_id) security_group_rule = nil data[:security_groups].find { |_id, sg| security_group_rule = sg["rules"].find { |sgr| sgr["id"].to_s == security_group_rule_id.to_s } } response = Excon::Response.new if security_group_rule response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-63a90344-7c4d-42e2-936c-fd748bced1b3", "Content-Type" => "application/json", "Content-Length" => "167", "Date" => Date.new } response.body = { "security_group_rule" => security_group_rule } else raise Fog::OpenStack::Compute::NotFound, "Security group rule #{security_group_rule_id} does not exist" end response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_server_details.rb000066400000000000000000000013311476630434000273210ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_server_details(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}" ) end end class Mock def get_server_details(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server response.status = [200, 203][rand(2)] response.body = {'server' => server} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_server_group.rb000066400000000000000000000020071476630434000270310ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_server_group(group_id) request( :expects => 200, :method => 'GET', :path => "/os-server-groups/#{group_id}" ) end end class Mock def get_server_group(group_id) grp = data[:server_groups][group_id] response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {'server_group' => { 'id' => group_id, 'name' => grp[:name], 'policies' => grp[:policies], 'members' => grp[:members], 'metadata' => {}, 'project_id' => 'test-project', 'user_id' => 'test-user' }} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_server_password.rb000066400000000000000000000013561476630434000275450ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_server_password(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}/os-server-password" ) end end class Mock def get_server_password(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server response.status = [200, 203][rand(2)] response.body = {'server' => server} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_server_volumes.rb000066400000000000000000000013511476630434000273700ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_server_volumes(server_id) request( :expects => 200, :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments" ) end end class Mock def get_server_volumes(server_id) response = Excon::Response.new response.status = 200 data = self.data[:volumes].values.select do |vol| vol['attachments'].find { |attachment| attachment["serverId"] == server_id } end response.body = {'volumeAttachments' => data.map! { |vol| vol['attachments'] }.flatten(1)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_snapshot_details.rb000066400000000000000000000013471476630434000276610ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_snapshot_details(snapshot_id) request( :expects => 200, :method => 'GET', :path => "os-snapshots/#{snapshot_id}" ) end end class Mock def get_snapshot_details(snapshot_id) response = Excon::Response.new if snapshot = list_snapshots_detail.body['snapshots'].find do |snap| snap['id'] == snapshot_id end response.status = 200 response.body = {'snapshot' => snapshot} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_usage.rb000066400000000000000000000043211476630434000254140ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_usage(tenant_id, date_start, date_end) params = {} params[:start] = date_start.utc.iso8601.chop! params[:end] = date_end.utc.iso8601.chop! request( :expects => [200, 203], :method => 'GET', :path => "os-simple-tenant-usage/#{tenant_id}", :query => params ) end end class Mock def get_usage(tenant_id, date_start, date_end) response = Excon::Response.new response.status = 200 response.body = {"tenant_usage" => {"total_memory_mb_usage" => 0.0, "total_vcpus_usage" => 0.0, "total_hours" => 0.0, "tenant_id" => tenant_id, "stop" => date_start, "start" => date_end, "total_local_gb_usage" => 0.0, "server_usages" => [{ "hours" => 0.0, "uptime" => 69180, "local_gb" => 0, "ended_at" => nil, "name" => "test server", "tenant_id" => tenant_id, "vcpus" => 1, "memory_mb" => 512, "state" => "active", "flavor" => "m1.tiny", "started_at" => "2012-03-05 09:11:44" }]}} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_vnc_console.rb000066400000000000000000000026521476630434000266250ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Get a vnc console for an instance. # For microversion < 2.6 as it has been replaced with remote-consoles # # === Parameters # * server_id <~String> - The ID of the server. # * console_type <~String> - Type of vnc console to get ('novnc' or 'xvpvnc'). # === Returns # * response <~Excon::Response>: # * body <~Hash>: # * url <~String> # * type <~String> def get_vnc_console(server_id, console_type) fixed_microversion = nil if microversion_newer_than?('2.5') fixed_microversion = @microversion @microversion = '2.5' end body = { 'os-getVNCConsole' => { 'type' => console_type } } result = server_action(server_id, body) @microversion = fixed_microversion if fixed_microversion result end end class Mock def get_vnc_console(_server_id, _console_type) response = Excon::Response.new response.status = 200 response.body = { "console" => { "url" => "http://192.168.27.100:6080/vnc_auto.html?token=c3606020-d1b7-445d-a88f-f7af48dd6a20", "type" => "novnc" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/get_volume_details.rb000066400000000000000000000014741476630434000273320ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def get_volume_details(volume_id) request( :expects => 200, :method => 'GET', :path => "os-volumes/#{volume_id}" ) end end class Mock def get_volume_details(volume_id) response = Excon::Response.new if data = self.data[:volumes][volume_id] if data['status'] == 'creating' \ && Time.now - Time.parse(data['createdAt']) >= Fog::Mock.delay data['status'] = 'available' end response.status = 200 response.body = {'volume' => data} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_address_pools.rb000066400000000000000000000010701476630434000273430ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_address_pools request( :expects => [200, 203], :method => 'GET', :path => "os-floating-ip-pools" ) end end class Mock def list_address_pools response = Excon::Response.new response.status = 200 response.body = { 'floating_ip_pools' => [ {'name' => 'nova'} ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_addresses.rb000066400000000000000000000013451476630434000264640ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_addresses(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}/ips" ) end end class Mock def list_addresses(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server response.status = [200, 203][rand(2)] response.body = {'addresses' => server['addresses']} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_aggregates.rb000066400000000000000000000017001476630434000266130ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_aggregates(options = {}) request( :expects => [200, 203], :method => 'GET', :path => 'os-aggregates', :query => options ) end end class Mock def list_aggregates(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'aggregates' => [{ "availability_zone" => "nova", "created_at" => "2012-11-16T06:22:23.032493", "deleted" => false, "deleted_at" => nil, "metadata" => { "availability_zone" => "nova" }, "id" => 1, "name" => "name", "updated_at" => nil }]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_all_addresses.rb000066400000000000000000000034151476630434000273140ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_all_addresses(options = {}) request( :expects => [200, 203], :method => 'GET', :path => "os-floating-ips", :query => options ) end end class Mock def list_all_addresses(_options = {}) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-d4a21158-a86c-44a6-983a-e25645907f26", "Content-Type" => "application/json", "Content-Length" => "378", "Date" => Date.new } response.body = { "floating_ips" => [ { "instance_id" => nil, "ip" => "192.168.27.129", "fixed_ip" => nil, "id" => 1, "pool" => "nova" }, { "instance_id" => nil, "ip" => "192.168.27.130", "fixed_ip" => nil, "id" => 2, "pool" => "nova" }, { "instance_id" => nil, "ip" => "192.168.27.131", "fixed_ip" => nil, "id" => 3, "pool" => "nova" }, { "instance_id" => nil, "ip" => "192.168.27.132", "fixed_ip" => nil, "id" => 4, "pool" => "nova" } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_availability_zones.rb000066400000000000000000000006461476630434000304020ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_availability_zones(options = {}) params = options request( :expects => [200], :method => 'GET', :path => "os-availability-zone", :query => params ) end end class Mock def list_endpoints end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_flavors.rb000066400000000000000000000024231476630434000261610ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_flavors(options = {}) request( :expects => [200, 203], :method => 'GET', :path => 'flavors', :query => options ) end end class Mock def list_flavors(_options = {}) response = Excon::Response.new response.status = 200 response.body = { 'flavors' => [ {'name' => '256 server', 'id' => '1', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '512 server', 'id' => '2', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '1GB server', 'id' => '3', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '2GB server', 'id' => '4', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '4GB server', 'id' => '5', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '8GB server', 'id' => '6', 'links' => ['https://itdoesntmatterwhatshere.heh']}, {'name' => '15.5GB server', 'id' => '7', 'links' => ['https://itdoesntmatterwhatshere.heh']} ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_flavors_detail.rb000066400000000000000000000032571476630434000275110ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_flavors_detail(options = {}) request( :expects => [200, 203], :method => 'GET', :path => 'flavors/detail', :query => options ) end end class Mock def list_flavors_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = { 'flavors' => [ {'id' => '1', 'name' => '256 server', 'ram' => 256, 'disk' => 10, 'swap' => '1', 'vcpus' => 1, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '2', 'name' => '512 server', 'ram' => 512, 'disk' => 20, 'swap' => '1', 'vcpus' => 2, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '3', 'name' => '1GB server', 'ram' => 1024, 'disk' => 40, 'swap' => '2', 'vcpus' => 2, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '4', 'name' => '2GB server', 'ram' => 2048, 'disk' => 80, 'swap' => '4', 'vcpus' => 4, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '5', 'name' => '4GB server', 'ram' => 4096, 'disk' => 160, 'swap' => '8', 'vcpus' => 8, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '6', 'name' => '8GB server', 'ram' => 8192, 'disk' => 320, 'swap' => '16', 'vcpus' => 16, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []}, {'id' => '7', 'name' => '15.5GB server', 'ram' => 15872, 'disk' => 620, 'swap' => '32', 'vcpus' => 32, 'OS-FLV-EXT-DATA:ephemeral' => 1, 'links' => []} ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_hosts.rb000066400000000000000000000011511476630434000256420ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_hosts(options = {}) request( :expects => [200, 203], :method => 'GET', :path => 'os-hosts', :query => options ) end end class Mock def list_hosts(_options = {}) response = Excon::Response.new response.status = 200 response.body = {"hosts" => [ {"host_name" => "host.test.net", "service" => "compute", "zone" => "az1"} ]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_hypervisor_servers.rb000066400000000000000000000022561476630434000304740ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_hypervisor_servers(hypervisor_id, options = {}) request( :expects => 200, :method => 'GET', :path => "os-hypervisors/#{hypervisor_id}/servers", :query => options ) end end class Mock def list_hypervisor_servers(hypervisor_id, _options = {}) response = Excon::Response.new response.status = 200 response.body = {'hypervisors' => [ { "hypervisor_hostname" => "fake-mini", "id" => hypervisor_id, "state" => "up", "status" => "enabled", "servers" => [ { "name" => "test_server1", "uuid" => "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name" => "test_server2", "uuid" => "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ] } ]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_hypervisors.rb000066400000000000000000000012121476630434000270750ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_hypervisors(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-hypervisors', :query => options ) end end class Mock def list_hypervisors(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'hypervisors' => [ {"hypervisor_hostname" => "fake-mini", "id" => 2, "state" => "up", "status" => "enabled"} ]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_hypervisors_detail.rb000066400000000000000000000043711476630434000304300ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_hypervisors_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-hypervisors/detail', :query => options ) end end class Mock def list_hypervisors_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = { "hypervisors" => [{ "cpu_info" => { "arch" => "x86_64", "model" => "Nehalem", "vendor" => "Intel", "features" => [ "pge", "clflush" ], "topology" => { "cores" => 1, "threads" => 1, "sockets" => 4 } }, "current_workload" => 0, "status" => "enabled", "state" => "up", "disk_available_least" => 0, "host_ip" => "1.1.1.1", "free_disk_gb" => 1028, "free_ram_mb" => 7680, "hypervisor_hostname" => "fake-mini", "hypervisor_type" => "fake", "hypervisor_version" => 1000, "id" => 2, "local_gb" => 1028, "local_gb_used" => 0, "memory_mb" => 8192, "memory_mb_used" => 512, "running_vms" => 0, "service" => { "host" => "host1", "id" => 7, "disabled_reason" => null }, "vcpus" => 1, "vcpus_used" => 0 }], "hypervisors_links" => [ { "href" => "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=2", "rel" => "next" } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_images.rb000066400000000000000000000012611476630434000257510ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_images request( :expects => [200, 203], :method => 'GET', :path => 'images' ) end end class Mock def list_images response = Excon::Response.new data = list_images_detail.body['images'] images = [] data.each do |image| images << image.reject { |key, _value| !['id', 'name', 'links'].include?(key) } end response.status = [200, 203][rand(2)] response.body = {'images' => images} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_images_detail.rb000066400000000000000000000017711476630434000273010ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_images_detail(filters = {}) request( :expects => [200, 203], :method => 'GET', :path => 'images/detail', :query => filters ) end end class Mock def list_images_detail(_filters = {}) response = Excon::Response.new images = data[:images].values images.each do |image| case image['status'] when 'SAVING' if Time.now - data[:last_modified][:images][image['id']] >= Fog::Mock.delay image['status'] = 'ACTIVE' end end end response.status = [200, 203][rand(2)] response.body = {'images' => images.map { |image| image.reject { |key, _value| !['id', 'name', 'links', 'minRam', 'minDisk', 'metadata', 'status', 'updated'].include?(key) } }} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_key_pairs.rb000066400000000000000000000024011476630434000264670ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_key_pairs(options = {}) request( :expects => [200, 203], :method => 'GET', :path => 'os-keypairs', :query => options ) end end class Mock def list_key_pairs(_options = {}) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-c373a42c-2825-4e60-8d34-99416ea850be", "Content-Type" => "application/json", "Content-Length" => "360", "Date" => Date.new } response.body = { "keypairs" => [{ "keypair" => { "public_key" => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDCdAZLjln1tJbLVVkNHjWFSoKen2nZbk39ZfqhZJOMdeFdz02GWBS4rcuHboeGg/gozKRwsLu4N6NLPlYtbK/NapJIvgO/djBp+FG1QZNtLPsx7j4hVJac3yISGms+Xtu4cEv6j5sFDzAgTQbWz0Z1+9qOq9ngdaoW+YClfQ== vagrant@nova\n", "name" => "test_key", "fingerprint" => "97:86:f4:15:68:0c:7b:a7:e5:8f:f0:bd:1f:27:65:ad" } }] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_metadata.rb000066400000000000000000000010361476630434000262640ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_metadata(collection_name, parent_id) request( :expects => [200, 203], :method => 'GET', :path => "/#{collection_name}/#{parent_id}/metadata" ) end end class Mock def list_metadata(_collection_name, _parent_id) response = Excon::Response.new response.status = 200 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_os_interfaces.rb000066400000000000000000000010221476630434000273230ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_os_interfaces(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}/os-interface" ) end end class Mock def list_os_interfaces(server_id) Excon::Response.new( :body => {'interfaceAttachments' => data[:os_interfaces]}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_private_addresses.rb000066400000000000000000000014061476630434000302140ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_private_addresses(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}/ips/private" ) end end class Mock def list_private_addresses(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server response.status = [200, 203][rand(2)] response.body = {'private' => server['addresses']['private']} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_public_addresses.rb000066400000000000000000000014011476630434000300130ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_public_addresses(server_id) request( :expects => [200, 203], :method => 'GET', :path => "servers/#{server_id}/ips/public" ) end end class Mock def list_public_addresses(server_id) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server response.status = [200, 203][rand(2)] response.body = {'public' => server['addresses']['public']} response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_security_groups.rb000066400000000000000000000037571476630434000277660ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_security_groups(options = {}) path = "os-security-groups" if options.kind_of?(Hash) server_id = options.delete(:server_id) query = options else # Backwards compatibility layer, only server_id was passed as first parameter previously Fog::Logger.deprecation('Calling OpenStack[:compute].list_security_groups(server_id) is deprecated, use .list_security_groups(:server_id => value) instead') server_id = options query = {} end if server_id path = "servers/#{server_id}/#{path}" end request( :expects => [200], :method => 'GET', :path => path, :query => query ) end end class Mock def list_security_groups(options = {}) server_id = if options.kind_of?(Hash) options.delete(:server_id) else options end security_groups = data[:security_groups].values groups = if server_id server_group_names = Array(data[:server_security_group_map][server_id]) server_group_names.map do |name| security_groups.find do |sg| sg['name'] == name end end.compact else security_groups end Excon::Response.new( :body => {'security_groups' => groups}, :headers => { "X-Compute-Request-Id" => "req-#{Fog::Mock.random_base64(36)}", "Content-Type" => "application/json", "Date" => Date.new }, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_server_groups.rb000066400000000000000000000012641476630434000274140ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_server_groups(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-server-groups', :query => options ) end end class Mock def list_server_groups(_options = {}) groups = data[:server_groups].map do |id, group| group.merge('id' => id, 'project_id' => 'test-project', 'user_id' => 'test-user') end Excon::Response.new( :body => {'server_groups' => groups}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_servers.rb000066400000000000000000000016341476630434000262010ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_servers(options = {}) params = options.dup if params[:all_tenants] params['all_tenants'] = 'True' params.delete(:all_tenants) end request( :expects => [200, 203], :method => 'GET', :path => 'servers', :query => params ) end end class Mock def list_servers(_options = {}) response = Excon::Response.new data = list_servers_detail.body['servers'] servers = [] data.each do |server| servers << server.reject { |key, _value| !['id', 'name', 'links'].include?(key) } end response.status = [200, 203][rand(2)] response.body = {'servers' => servers} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_servers_detail.rb000066400000000000000000000021661476630434000275240ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Available filters: name, status, image, flavor, changes_since, reservation_id def list_servers_detail(options = {}) params = options.dup if params[:all_tenants] params['all_tenants'] = 'True' params.delete(:all_tenants) end request( :expects => [200, 203], :method => 'GET', :path => 'servers/detail', :query => params ) end end class Mock def list_servers_detail(_filters = {}) response = Excon::Response.new servers = data[:servers].values servers.each do |server| case server['status'] when 'BUILD' if Time.now - data[:last_modified][:servers][server['id']] > Fog::Mock.delay * 2 server['status'] = 'ACTIVE' end end end response.status = [200, 203][rand(2)] response.body = {'servers' => servers} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_services.rb000066400000000000000000000050741476630434000263350ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_services(parameters = nil) request( :expects => [200, 203], :method => 'GET', :path => 'os-services', :query => parameters ) end end class Mock def list_services(_parameters = nil) response = Excon::Response.new response.status = 200 response.body = { "services" => [{ "id" => 1, "binary" => "nova-scheduler", "host" => "host1", "state" => "up", "status" => "disabled", "updated_at" => "2012-10-29T13:42:02.000000", "zone" => "internal", "disabled_reason" => "test2" }, { "id" => 2, "binary" => "nova-compute", "host" => "host1", "state" => "up", "status" => "disabled", "updated_at" => "2012-10-29T13:42:05.000000", "zone" => "nova", "disabled_reason" => "test2" }, { "id" => 3, "binary" => "nova-scheduler", "host" => "host2", "state" => "down", "status" => "enabled", "updated_at" => "2012-09-19T06:55:34.000000", "zone" => "internal", "disabled_reason" => "nil" }, { "id" => 4, "binary" => "nova-compute", "host" => "host2", "state" => "down", "status" => "disabled", "updated_at" => "2012-09-18T08:03:38.000000", "zone" => "nova", "disabled_reason" => "test2" }] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_snapshots.rb000066400000000000000000000023041476630434000265250ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_snapshots(options = true) if options.kind_of?(Hash) path = 'os-snapshots' query = options else # Backwards compatibility layer, when 'detailed' boolean was sent as first param if options Fog::Logger.deprecation('Calling OpenStack[:compute].list_snapshots(true) is deprecated, use .list_snapshots_detail instead') else Fog::Logger.deprecation('Calling OpenStack[:compute].list_snapshots(false) is deprecated, use .list_snapshots({}) instead') end path = options ? 'os-snapshots/detail' : 'os-snapshots' query = {} end request( :expects => 200, :method => 'GET', :path => path, :query => query ) end end class Mock def list_snapshots(_options = true) response = Excon::Response.new response.status = 200 snapshots = data[:snapshots].values response.body = {'snapshots' => snapshots} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_snapshots_detail.rb000066400000000000000000000011331476630434000300460ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_snapshots_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-snapshots/detail', :query => options ) end end class Mock def list_snapshots_detail(_options = {}) response = Excon::Response.new response.status = 200 snapshots = data[:snapshots].values response.body = {'snapshots' => snapshots} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_tenants_with_flavor_access.rb000066400000000000000000000012231476630434000321030ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_tenants_with_flavor_access(flavor_ref) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{flavor_ref}/os-flavor-access" ) end end class Mock def list_tenants_with_flavor_access(flavor_ref) response = Excon::Response.new response.status = 200 response.body = { "flavor_access" => [{"tenant_id" => Fog::Mock.random_hex(33), "flavor_id" => flavor_ref.to_s}] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_usages.rb000066400000000000000000000024701476630434000257760ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_usages(date_start = nil, date_end = nil, detailed = false) params = {} params[:start] = date_start.iso8601.gsub(/\+.*/, '') if date_start params[:end] = date_end.iso8601.gsub(/\+.*/, '') if date_end params[:detailed] = (detailed ? '1' : '0') if detailed request( :expects => [200, 203], :method => 'GET', :path => 'os-simple-tenant-usage', :query => params ) end end class Mock def list_usages(_date_start = nil, _date_end = nil, _detailed = false) response = Excon::Response.new response.status = 200 response.body = {"tenant_usages" => [{ "total_memory_mb_usage" => 0.00036124444444444445, "total_vcpus_usage" => 7.055555555555556e-07, "start" => "2012-03-06 05:05:56.349001", "tenant_id" => "b97c8abba0c44a0987c63b858a4823e5", "stop" => "2012-03-06 05:05:56.349255", "total_hours" => 7.055555555555556e-07, "total_local_gb_usage" => 0.0 }]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_volume_attachments.rb000066400000000000000000000014301476630434000304040ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_volume_attachments(server_id) request( :expects => 200, :method => 'GET', :path => format('servers/%s/os-volume_attachments', server_id) ) end end class Mock def list_volume_attachments(server_id) Excon::Response.new( :body => { :volumeAttachments => [{ :device => '/dev/vdd', :serverId => server_id, :id => '24011ca7-9937-41e4-b19b-141307d1b656', :volumeId => '24011ca7-9937-41e4-b19b-141307d1b656' }] }, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_volumes.rb000066400000000000000000000021661476630434000262030ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_volumes(options = true) if options.kind_of?(Hash) path = 'os-volumes' query = options else # Backwards compatibility layer, when 'detailed' boolean was sent as first param if options Fog::Logger.deprecation('Calling OpenStack[:compute].list_volumes(true) is deprecated, use .list_volumes_detail instead') else Fog::Logger.deprecation('Calling OpenStack[:compute].list_volumes(false) is deprecated, use .list_volumes({}) instead') end path = options ? 'os-volumes/detail' : 'os-volumes' query = {} end request( :expects => 200, :method => 'GET', :path => path, :query => query ) end end class Mock def list_volumes(_options = true) Excon::Response.new( :body => {'volumes' => data[:volumes].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_volumes_detail.rb000066400000000000000000000010311476630434000275130ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_volumes_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-volumes/detail', :query => options ) end end class Mock def list_volumes_detail(_options = {}) Excon::Response.new( :body => {'volumes' => data[:volumes].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_zones.rb000066400000000000000000000013251476630434000256430ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_zones(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-availability-zone', :query => options ) end end class Mock def list_zones(_options = {}) Excon::Response.new( :body => {"availabilityZoneInfo" => [ { "zoneState" => { "available" => true }, "hosts" => nil, "zoneName" => "nova" } ]}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/list_zones_detailed.rb000066400000000000000000000040711476630434000274770ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def list_zones_detailed(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-availability-zone/detail', :query => options ) end end class Mock def list_zones_detailed(_options = {}) Excon::Response.new( :body => { "availabilityZoneInfo" => [ { "zoneState" => { "available" => true }, "hosts" => { "instack.localdomain" => { "nova-conductor" => { "available" => true, "active" => true, "updated_at" => "2015-07-22T07:40:08.000000" }, "nova-scheduler" => { "available" => true, "active" => true, "updated_at" => "2015-07-22T07:40:04.000000" }, "nova-consoleauth" => { "available" => true, "active" => true, "updated_at" => "2015-07-22T07:40:09.000000" } } }, "zoneName" => "internal" }, { "zoneState" => { "available" => true }, "hosts" => { "instack.localdomain" => { "nova-compute" => { "available" => true, "active" => true, "updated_at" => "2015-07-22T07:40:04.000000" } } }, "zoneName" => "nova" } ] }, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/live_migrate_server.rb000066400000000000000000000012461476630434000275110ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def live_migrate_server(server_id, host, block_migration, disk_over_commit) body = { 'os-migrateLive' => { 'host' => host, 'block_migration' => block_migration, 'disk_over_commit' => disk_over_commit, } } server_action(server_id, body) end end class Mock def live_migrate_server(_server_id, _host, _block_migration, _disk_over_commit) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/migrate_server.rb000066400000000000000000000006071476630434000264720ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def migrate_server(server_id) body = {'migrate' => nil} server_action(server_id, body) end end class Mock def migrate_server(_server_id) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/pause_server.rb000066400000000000000000000007671476630434000261660ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Pause the server. # # === Parameters # * server_id <~String> - The ID of the server to pause. # === Returns # * success <~Boolean> def pause_server(server_id) body = {'pause' => nil} server_action(server_id, body).status == 202 end end class Mock def pause_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/reboot_server.rb000066400000000000000000000006601476630434000263330ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def reboot_server(server_id, type = 'SOFT') body = {'reboot' => {'type' => type}} server_action(server_id, body) end end class Mock def reboot_server(_server_id, _type = 'SOFT') response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/rebuild_server.rb000066400000000000000000000021071476630434000264650ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def rebuild_server(server_id, image_ref, name, admin_pass = nil, metadata = nil, personality = nil) body = {'rebuild' => { 'imageRef' => image_ref, 'name' => name }} body['rebuild']['adminPass'] = admin_pass if admin_pass body['rebuild']['metadata'] = metadata if metadata if personality body['rebuild']['personality'] = [] personality.each do |file| body['rebuild']['personality'] << { 'contents' => Base64.encode64(file['contents']), 'path' => file['path'] } end end server_action(server_id, body, 202) end end class Mock def rebuild_server(server_id, _image_ref, _name, _admin_pass = nil, _metadata = nil, _personality = nil) response = get_server_details(server_id) response.body['server']['status'] = "REBUILD" response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/release_address.rb000066400000000000000000000012551476630434000266010ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def release_address(address_id) request( :expects => [200, 202], :method => 'DELETE', :path => "os-floating-ips/#{address_id}" ) end end class Mock def release_address(_address_id) response = Excon::Response.new response.status = 202 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/remote_consoles.rb000066400000000000000000000033611476630434000266540ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Get a vnc console for an instance. # For microversion >= 2.6 # # === Parameters # * server_id <~String> - The ID of the server. # * protocol <~String> - The protocol of remote console. The valid values are vnc, spice, rdp, serial and mks. # The protocol mks is added since Microversion 2.8. # * type <~String> - The type of remote console. The valid values are novnc, xvpvnc, rdp-html5, spice-html5, # serial, and webmks. The type webmks is added since Microversion 2.8. # === Returns # * response <~Excon::Response>: # * body <~Hash>: # * url <~String> # * type <~String> # * protocol <~String> def remote_consoles(server_id, protocol, type) if microversion_newer_than?('2.6') body = { 'remote_console' => { 'protocol' => protocol, 'type' => type } } request( :body => Fog::JSON.encode(body), :expects => 200, :method => 'POST', :path => "servers/#{server_id}/remote-consoles" ) end end end class Mock def remote_consoles(_server_id, _protocol, _type) response = Excon::Response.new response.status = 200 response.body = { "remote_console" => { "url" => "http://192.168.27.100:6080/vnc_auto.html?token=e629bcbf-6f9e-4276-9ea1-d6eb0e618da5", "type" => "novnc", "protocol" => "vnc" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/remove_aggregate_host.rb000066400000000000000000000014111476630434000300060ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def remove_aggregate_host(uuid, host_uuid) data = {'remove_host' => {'host' => host_uuid}} request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "os-aggregates/#{uuid}/action" ) end end class Mock def remove_aggregate_host(_uuid, _host_uuid) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/remove_fixed_ip.rb000066400000000000000000000012661476630434000266220ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Remove an IP address. # # === Parameters # * server_id <~String> - The ID of the server in which to remove an IP from. # * address <~String> - The IP address to be removed. # === Returns # * success <~Boolean> def remove_fixed_ip(server_id, address) body = { 'removeFixedIp' => { 'address' => address } } server_action(server_id, body).status == 202 end end class Mock def remove_fixed_ip(_server_id, _address) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/remove_flavor_access.rb000066400000000000000000000013711476630434000276420ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def remove_flavor_access(flavor_ref, tenant_id) request( :body => Fog::JSON.encode("removeTenantAccess" => { "tenant" => tenant_id.to_s }), :expects => [200, 203], :method => 'POST', :path => "flavors/#{flavor_ref}/action" ) end end class Mock def remove_flavor_access(_flavor_ref, _tenant_id) response = Excon::Response.new response.status = 200 response.body = { "flavor_access" => [] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/remove_security_group.rb000066400000000000000000000007151476630434000301140ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def remove_security_group(server_id, group_name) body = {'removeSecurityGroup' => {"name" => group_name}} server_action(server_id, body) end end class Mock def remove_security_group(_server_id, _group_name) response = Excon::Response.new response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/rescue_server.rb000066400000000000000000000007711476630434000263320ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Rescue the server. # # === Parameters # * server_id <~String> - The ID of the server to be rescued. # === Returns # * success <~Boolean> def rescue_server(server_id) body = {'rescue' => nil} server_action(server_id, body) == 202 end end class Mock def rescue_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/reset_server_state.rb000066400000000000000000000007371476630434000273700ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def reset_server_state(server_id, status) body = {'os-resetState' => {'state' => status}} server_action(server_id, body, 202) end end class Mock def reset_server_state(server_id, status) response = get_server_details(server_id) response.body['server']['status'] = status.upcase response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/resize_server.rb000066400000000000000000000006651476630434000263470ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def resize_server(server_id, flavor_ref) body = {'resize' => {'flavorRef' => flavor_ref}} server_action(server_id, body) end end class Mock def resize_server(_server_id, _flavor_ref) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/resume_server.rb000066400000000000000000000010001476630434000263260ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Resume the server. # # === Parameters # * server_id <~String> - The ID of the server to be resumed. # === Returns # * success <~Boolean> def resume_server(server_id) body = {'resume' => nil} server_action(server_id, body).status == 202 end end class Mock def resume_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/revert_resize_server.rb000066400000000000000000000012501476630434000277250ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def revert_resize_server(server_id) body = {'revertResize' => nil} server_action(server_id, body) end end class Mock def revert_resize_server(server_id) response = Excon::Response.new response.status = 202 data[:servers][server_id]['flavorId'] = data[:servers][server_id]['old_flavorId'] data[:servers][server_id].delete('old_flavorId') data[:last_modified][:servers][server_id] = Time.now data[:servers][server_id]['status'] = 'ACTIVE' response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/server_action.rb000066400000000000000000000005601476630434000263150ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def server_action(server_id, body, expects = [200, 202]) request( :body => Fog::JSON.encode(body), :expects => expects, :method => 'POST', :path => "servers/#{server_id}/action" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/server_actions.rb000066400000000000000000000021071476630434000264770ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Retrieve server actions. # # === Parameters # * server_id <~String> - The ID of the server to query for available actions. # === Returns # * actions <~Array> def server_actions(server_id) request( :expects => 200, :method => 'GET', :path => "servers/#{server_id}/os-instance-actions" ).body['instanceActions'] end end class Mock def server_actions(server_id) response = Excon::Response.new response.status = 200 response.body = [{ 'instance_uuid' => server_id, 'user_id' => '7067d67a2b23435ca2366588680b66c3', 'start_time' => Time.now.iso8601, 'request_id' => "req-#{server_id}", 'action' => 'stop', 'message' => nil, 'project_id' => '9d5d0b877cf449fdae078659cfa12e86' }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/server_diagnostics.rb000066400000000000000000000010511476630434000273430ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Retrieve server diagnostics. # # === Parameters # * server_id <~String> - The ID of the server to retrieve diagnostics. # === Returns # * actions <~Array> def server_diagnostics(server_id) request( :method => 'GET', :path => "servers/#{server_id}/diagnostics" ) end end class Mock def server_diagnostics(server_id) end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/set_metadata.rb000066400000000000000000000021071476630434000261040ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def set_metadata(collection_name, parent_id, metadata = {}) request( :body => Fog::JSON.encode('metadata' => metadata), :expects => 200, :method => 'PUT', :path => "#{collection_name}/#{parent_id}/metadata" ) end end class Mock def set_metadata(collection_name, parent_id, metadata = {}) if collection_name == "images" unless list_images_detail.body['images'].find { |image| image['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end if collection_name == "servers" unless list_servers_detail.body['servers'].find { |server| server['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end response = Excon::Response.new response.body = {"metadata" => metadata} response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/set_tenant.rb000066400000000000000000000005201476630434000256120ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end class Mock def set_tenant(_tenant) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/shelve_offload_server.rb000066400000000000000000000011251476630434000300160ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Shelve Off load the server. Data and resource associations are deleted. # # === Parameters # * server_id <~String> - The ID of the server to be shelve off loaded # === Returns # * success <~Boolean> def shelve_offload_server(server_id) body = {'shelveOffload' => nil} server_action(server_id, body).status == 202 end end class Mock def shelve_offload_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/shelve_server.rb000066400000000000000000000007771476630434000263400ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Shelve the server. # # === Parameters # * server_id <~String> - The ID of the server to be shelved # === Returns # * success <~Boolean> def shelve_server(server_id) body = {'shelve' => nil} server_action(server_id, body).status == 202 end end class Mock def shelve_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/start_server.rb000066400000000000000000000007771476630434000262070ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Start the server. # # === Parameters # * server_id <~String> - The ID of the server to be started. # === Returns # * success <~Boolean> def start_server(server_id) body = {'os-start' => nil} server_action(server_id, body).status == 202 end end class Mock def start_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/stop_server.rb000066400000000000000000000007731476630434000260330ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Stop the server. # # === Parameters # * server_id <~String> - The ID of the server to be stopped. # === Returns # * success <~Boolean> def stop_server(server_id) body = {'os-stop' => nil} server_action(server_id, body).status == 202 end end class Mock def stop_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/suspend_server.rb000066400000000000000000000010011476630434000265100ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Suspend the server. # # === Parameters # * server_id <~String> - The ID of the server to suspend. # === Returns # * success <~Boolean> def suspend_server(server_id) body = {'suspend' => nil} server_action(server_id, body).status == 202 end end class Mock def suspend_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/unpause_server.rb000066400000000000000000000010011476630434000265070ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Unpause the server. # # === Parameters # * server_id <~String> - The ID of the server to unpause. # === Returns # * success <~Boolean> def unpause_server(server_id) body = {'unpause' => nil} server_action(server_id, body).status == 202 end end class Mock def unpause_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/unshelve_server.rb000066400000000000000000000010111476630434000266610ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real # Unshelve the server. # # === Parameters # * server_id <~String> - The ID of the server to be unshelved # === Returns # * success <~Boolean> def unshelve_server(server_id) body = {'unshelve' => nil} server_action(server_id, body).status == 202 end end class Mock def unshelve_server(_server_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_aggregate.rb000066400000000000000000000017471476630434000267520ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_aggregate(uuid, options = {}) vanilla_options = [:name, :availability_zone] data = {'aggregate' => {}} vanilla_options.select { |o| options[o] }.each do |key| data['aggregate'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "os-aggregates/#{uuid}" ) end end class Mock def update_aggregate(_uuid, _options = {}) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response.body = {'aggregate' => data[:aggregates].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_aggregate_metadata.rb000066400000000000000000000014351476630434000306040ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_aggregate_metadata(uuid, metadata = {}) data = {'set_metadata' => {'metadata' => metadata}} request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "os-aggregates/#{uuid}/action" ) end end class Mock def update_aggregate_metadata(_uuid, _metadata = {}) response = Excon::Response.new response.status = 200 response.headers = { "Content-Type" => "text/html; charset=UTF-8", "Content-Length" => "0", "Date" => Date.new } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_flavor_metadata.rb000066400000000000000000000016221476630434000301450ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_flavor_metadata(flavor_ref, key, value) data = {key => value} request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "flavors/#{flavor_ref}/os-extra_specs/#{key}" ) end end class Mock def update_flavor_metadata(_flavor_ref, key, value) response = Excon::Response.new response.status = 200 response.headers = { "X-Compute-Request-Id" => "req-fdc6f99e-55a2-4ab1-8904-0892753828cf", "Content-Type" => "application/json", "Content-Length" => "356", "Date" => Date.new } response.body = {key => value} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_meta.rb000066400000000000000000000022001476630434000257330ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_meta(collection_name, parent_id, key, value) request( :body => Fog::JSON.encode('meta' => {key => value}), :expects => 200, :method => 'PUT', :path => "#{collection_name}/#{parent_id}/metadata/#{key}" ) end end class Mock def update_meta(collection_name, parent_id, key, value) if collection_name == "images" unless list_images_detail.body['images'].find { |image| image['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end if collection_name == "servers" unless list_servers_detail.body['servers'].find { |server| server['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end # FIXME: join w/ existing metadata here response = Excon::Response.new response.body = {"metadata" => {key => value}} response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_metadata.rb000066400000000000000000000022001476630434000265650ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_metadata(collection_name, parent_id, metadata = {}) request( :body => Fog::JSON.encode('metadata' => metadata), :expects => 200, :method => 'POST', :path => "#{collection_name}/#{parent_id}/metadata" ) end end class Mock def update_metadata(collection_name, parent_id, metadata = {}) if collection_name == "images" unless list_images_detail.body['images'].find { |image| image['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end if collection_name == "servers" unless list_servers_detail.body['servers'].find { |server| server['id'] == parent_id } raise Fog::OpenStack::Compute::NotFound end end # FIXME: join w/ existing metadata here response = Excon::Response.new response.body = {"metadata" => metadata} response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_quota.rb000066400000000000000000000012421476630434000261430ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_quota(tenant_id, options = {}) request( :body => Fog::JSON.encode('quota_set' => options), :expects => 200, :method => 'PUT', :path => "/os-quota-sets/#{tenant_id}" ) end end class Mock def update_quota(_tenant_id, options = {}) data[:quota_updated] = data[:quota].merge options response = Excon::Response.new response.status = 200 response.body = {'quota_set' => data[:quota_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/compute/requests/update_server.rb000066400000000000000000000015001476630434000263150ustar00rootroot00000000000000module Fog module OpenStack class Compute class Real def update_server(server_id, options = {}) request( :body => Fog::JSON.encode('server' => options), :expects => 200, :method => 'PUT', :path => "servers/#{server_id}" ) end end class Mock def update_server(server_id, options = {}) response = Excon::Response.new server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id } if server if options['name'] server['name'] = options['name'] end response.status = 200 response else raise Fog::OpenStack::Compute::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra.rb000066400000000000000000000104451476630434000232670ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra < Fog::Service SUPPORTED_VERSIONS = /v1/ SUPPORTED_MICROVERSION = '1.3' requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/container_infra/models' model :bay collection :bays model :bay_model collection :bay_models model :certificate collection :certificates model :cluster collection :clusters model :cluster_template collection :cluster_templates request_path 'fog/openstack/container_infra/requests' # Bay CRUD request :create_bay request :delete_bay request :get_bay request :list_bays request :update_bay # Bay Model CRUD request :create_bay_model request :delete_bay_model request :get_bay_model request :list_bay_models request :update_bay_model # Certificate CRUD request :create_certificate request :get_certificate # Cluster CRUD request :create_cluster request :delete_cluster request :get_cluster request :list_clusters request :update_cluster # Cluster Template CRUD request :create_cluster_template request :delete_cluster_template request :get_cluster_template request :list_cluster_templates request :update_cluster_template class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9511 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::ContainerInfra::NotFound end def default_path_prefix 'v1' end def default_service_type %w[container-infra] end def request(options = {}) options[:headers] = {'OpenStack-API-Version' => "container-infra #{SUPPORTED_MICROVERSION}"} super(options) end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/000077500000000000000000000000001476630434000227365ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/000077500000000000000000000000001476630434000242215ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/base.rb000066400000000000000000000010031476630434000254520ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class ContainerInfra class Base < Fog::OpenStack::Model def convert_update_params(params) params = params.map do |key, value| { "path" => "/#{key}", "op" => value ? "replace" : "remove" }.merge(value ? {"value" => value} : {}) end params.each {|k,v| params[k] = v.to_s.capitalize if [true, false].include?(v)} end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/bay.rb000066400000000000000000000024371476630434000253270ustar00rootroot00000000000000require_relative 'base' module Fog module OpenStack class ContainerInfra class Bay < Fog::OpenStack::ContainerInfra::Base identity :uuid attribute :api_address attribute :coe_version attribute :baymodel_id attribute :create_timeout attribute :created_at attribute :discovery_url attribute :master_addresses attribute :master_count attribute :name attribute :node_addresses attribute :node_count attribute :stack_id attribute :status attribute :status_reason attribute :updated_at def create requires :name, :baymodel_id merge_attributes(service.create_bay(attributes).body) self end def update requires :uuid, :name, :baymodel_id attrs = attributes.select{|k,_| allowed_update_attributes.include? k} attrs = convert_update_params(attrs) merge_attributes(service.update_bay(uuid, attrs).body) self end def destroy requires :uuid service.delete_bay(uuid) true end private def allowed_update_attributes [ :node_count ] end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/bay_model.rb000066400000000000000000000033321476630434000265020ustar00rootroot00000000000000require_relative 'base' module Fog module OpenStack class ContainerInfra class BayModel < Fog::OpenStack::ContainerInfra::Base identity :uuid attribute :apiserver_port attribute :cluster_distro attribute :coe attribute :created_at attribute :dns_nameserver attribute :docker_storage_driver attribute :docker_volume_size attribute :external_network_id attribute :fixed_network attribute :fixed_subnet attribute :flavor_id attribute :floating_ip_enabled attribute :http_proxy attribute :https_proxy attribute :image_id attribute :insecure_registry attribute :keypair_id attribute :labels attribute :master_flavor_id attribute :master_lb_enabled attribute :name attribute :network_driver attribute :no_proxy attribute :public attribute :registry_enabled attribute :server_type attribute :tls_disabled attribute :updated_at attribute :volume_driver def create requires :name, :keypair_id, :flavor_id, :image_id, :external_network_id, :coe merge_attributes(service.create_bay_model(attributes).body) self end def update requires :uuid, :name, :keypair_id, :flavor_id, :image_id, :external_network_id, :coe attrs = convert_update_params(attributes) merge_attributes(service.update_bay_model(uuid, attrs).body) self end def destroy requires :uuid service.delete_bay_model(uuid) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/bay_models.rb000066400000000000000000000011301476630434000266570ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/container_infra/models/bay_model' module Fog module OpenStack class ContainerInfra class BayModels < Fog::OpenStack::Collection model Fog::OpenStack::ContainerInfra::BayModel def all load_response(service.list_bay_models, 'baymodels') end def get(bay_model_uuid_or_name) resource = service.get_bay_model(bay_model_uuid_or_name).body new(resource) rescue Fog::OpenStack::ContainerInfra::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/bays.rb000066400000000000000000000010531476630434000255030ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/container_infra/models/bay' module Fog module OpenStack class ContainerInfra class Bays < Fog::OpenStack::Collection model Fog::OpenStack::ContainerInfra::Bay def all load_response(service.list_bays, "bays") end def get(bay_uuid_or_name) resource = service.get_bay(bay_uuid_or_name).body new(resource) rescue Fog::OpenStack::ContainerInfra::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/certificate.rb000066400000000000000000000006201476630434000270260ustar00rootroot00000000000000require_relative 'base' module Fog module OpenStack class ContainerInfra class Certificate < Fog::OpenStack::ContainerInfra::Base identity :bay_uuid attribute :pem attribute :csr def create requires :csr, :bay_uuid merge_attributes(service.create_certificate(attributes).body) self end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/certificates.rb000066400000000000000000000011551476630434000272150ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/container_infra/models/certificate' module Fog module OpenStack class ContainerInfra class Certificates < Fog::OpenStack::Collection model Fog::OpenStack::ContainerInfra::Certificate def create(bay_uuid) resource = service.create_certificate(bay_uuid).body new(resource) end def get(bay_uuid) resource = service.get_certificate(bay_uuid).body new(resource) rescue Fog::OpenStack::ContainerInfra::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/cluster.rb000066400000000000000000000025071476630434000262330ustar00rootroot00000000000000require_relative 'base' module Fog module OpenStack class ContainerInfra class Cluster < Fog::OpenStack::ContainerInfra::Base identity :uuid attribute :api_address attribute :coe_version attribute :cluster_template_id attribute :create_timeout attribute :created_at attribute :discovery_url attribute :master_addresses attribute :master_count attribute :name attribute :node_addresses attribute :node_count attribute :stack_id attribute :status attribute :status_reason attribute :updated_at def create requires :name, :cluster_template_id merge_attributes(service.create_cluster(attributes).body) self end def update requires :uuid, :name, :cluster_template_id attrs = attributes.select{|k,_| allowed_update_attributes.include? k} attrs = convert_update_params(attrs) merge_attributes(service.update_cluster(uuid, attrs).body) self end def destroy requires :uuid service.delete_cluster(uuid) true end private def allowed_update_attributes [ :node_count ] end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/cluster_template.rb000066400000000000000000000033271476630434000301270ustar00rootroot00000000000000require_relative 'base' module Fog module OpenStack class ContainerInfra class ClusterTemplate < Fog::OpenStack::ContainerInfra::Base identity :uuid attribute :apiserver_port attribute :cluster_distro attribute :coe attribute :created_at attribute :dns_nameserver attribute :docker_storage_driver attribute :docker_volume_size attribute :external_network_id attribute :fixed_network attribute :fixed_subnet attribute :flavor_id attribute :floating_ip_enabled attribute :http_proxy attribute :image_id attribute :insecure_registry attribute :keypair_id attribute :labels attribute :master_flavor_id attribute :master_lb_enabled attribute :name attribute :network_driver attribute :no_proxy attribute :public attribute :registry_enabled attribute :server_type attribute :tls_disabled attribute :updated_at attribute :volume_driver def create requires :name, :keypair_id, :flavor_id, :image_id, :external_network_id, :coe merge_attributes(service.create_cluster_template(attributes).body) self end def update requires :uuid, :name, :keypair_id, :flavor_id, :image_id, :external_network_id, :coe attrs = convert_update_params(attributes) merge_attributes(service.update_cluster_template(uuid, attrs).body) self end def destroy requires :uuid service.delete_cluster_template(uuid) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/cluster_templates.rb000066400000000000000000000012211476630434000303010ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/container_infra/models/cluster_template' module Fog module OpenStack class ContainerInfra class ClusterTemplates < Fog::OpenStack::Collection model Fog::OpenStack::ContainerInfra::ClusterTemplate def all load_response(service.list_cluster_templates, 'clustertemplates') end def get(cluster_template_uuid_or_name) resource = service.get_cluster_template(cluster_template_uuid_or_name).body new(resource) rescue Fog::OpenStack::ContainerInfra::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/models/clusters.rb000066400000000000000000000011141476630434000264070ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/container_infra/models/cluster' module Fog module OpenStack class ContainerInfra class Clusters < Fog::OpenStack::Collection model Fog::OpenStack::ContainerInfra::Cluster def all load_response(service.list_clusters, "clusters") end def get(cluster_uuid_or_name) resource = service.get_cluster(cluster_uuid_or_name).body new(resource) rescue Fog::OpenStack::ContainerInfra::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/000077500000000000000000000000001476630434000246115ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/create_bay.rb000066400000000000000000000011221476630434000272300ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def create_bay(params) request( :expects => [202, 201, 200], :method => 'POST', :path => "bays", :body => Fog::JSON.encode(params) ) end end class Mock def create_bay(_params) response = Excon::Response.new response.status = 202 response.body = { "uuid" => "746e779a-751a-456b-a3e9-c883d734946f" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/create_bay_model.rb000066400000000000000000000040751476630434000304220ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def create_bay_model(params) request( :expects => [201, 200], :method => 'POST', :path => "baymodels", :body => Fog::JSON.encode(params) ) end end class Mock def create_bay_model(_params) response = Excon::Response.new response.status = 201 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm2", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/create_certificate.rb000066400000000000000000000016651476630434000307530ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def create_certificate(params) request( :expects => [201, 200], :method => 'POST', :path => "certificates", :body => Fog::JSON.encode(params) ) end end class Mock def create_certificate(_params) response = Excon::Response.new response.status = 201 response.body = { "pem" => "-----BEGIN CERTIFICATE-----\nMIIDxDCCAqygAwIBAgIRALgUbIjdKUy8lqErJmCxVfkwDQYJKoZIhvcNAQELBQAw\n-----END CERTIFICATE-----\n", "bay_uuid" => "0b4b766f-1500-44b3-9804-5a6e12fe6df4", "csr" => "-----BEGIN CERTIFICATE REQUEST-----\nMIIEfzCCAmcCAQAwFDESMBAGA1UEAxMJWW91ciBOYW1lMIICIjANBgkqhkiG9w0B\n-----END CERTIFICATE REQUEST-----\n" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/create_cluster.rb000066400000000000000000000011361476630434000301430ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def create_cluster(params) request( :expects => [202, 201, 200], :method => 'POST', :path => "clusters", :body => Fog::JSON.encode(params) ) end end class Mock def create_cluster(_params) response = Excon::Response.new response.status = 202 response.body = { "uuid" => "746e779a-751a-456b-a3e9-c883d734946f" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/create_cluster_template.rb000066400000000000000000000041221476630434000320340ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def create_cluster_template(params) request( :expects => [201, 200], :method => 'POST', :path => "clustertemplates", :body => Fog::JSON.encode(params) ) end end class Mock def create_cluster_template(_params) response = Excon::Response.new response.status = 201 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm2", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/delete_bay.rb000066400000000000000000000007541476630434000272410ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def delete_bay(uuid_or_name) request( :expects => [204], :method => 'DELETE', :path => "bays/#{uuid_or_name}" ) end end class Mock def delete_bay(_uuid_or_name) response = Excon::Response.new response.status = 204 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/delete_bay_model.rb000066400000000000000000000007751476630434000304240ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def delete_bay_model(uuid_or_name) request( :expects => [204], :method => 'DELETE', :path => "baymodels/#{uuid_or_name}" ) end end class Mock def delete_bay_model(_uuid_or_name) response = Excon::Response.new response.status = 204 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/delete_cluster.rb000066400000000000000000000007701476630434000301450ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def delete_cluster(uuid_or_name) request( :expects => [204], :method => 'DELETE', :path => "clusters/#{uuid_or_name}" ) end end class Mock def delete_cluster(_uuid_or_name) response = Excon::Response.new response.status = 204 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/delete_cluster_template.rb000066400000000000000000000010221476630434000320270ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def delete_cluster_template(uuid_or_name) request( :expects => [204], :method => 'DELETE', :path => "clustertemplates/#{uuid_or_name}" ) end end class Mock def delete_cluster_template(_uuid_or_name) response = Excon::Response.new response.status = 204 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/get_bay.rb000066400000000000000000000034651476630434000265600ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def get_bay(uuid_or_name) request( :expects => [200], :method => 'GET', :path => "bays/#{uuid_or_name}" ) end end class Mock def get_bay(_uuid_or_name) response = Excon::Response.new response.status = 200 response.body = { "status" => "CREATE_COMPLETE", "uuid" => "746e779a-751a-456b-a3e9-c883d734946f", "stack_id" => "9c6f1169-7300-4d08-a444-d2be38758719", "created_at" => "2016-08-29T06:51:31+00:00", "api_address" => "https://172.24.4.6:6443", "discovery_url" => "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", "updated_at" => "2016-08-29T06:53:24+00:00", "master_count" => 1, "coe_version" => "v1.2.0", "baymodel_id" => "0562d357-8641-4759-8fed-8173f02c9633", "master_addresses" => ["172.24.4.6"], "node_count" => 1, "node_addresses" => ["172.24.4.13"], "status_reason" => "Stack CREATE completed successfully", "bay_create_timeout" => 60, "name" => "k8s", "links" => [ { "href" => "http://10.164.180.104:9511/v1/bays/746e779a-751a-456b-a3e9-c883d734946f", "rel" => "self" }, { "href" => "http://10.164.180.104:9511/bays/746e779a-751a-456b-a3e9-c883d734946f", "rel" => "bookmark" } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/get_bay_model.rb000066400000000000000000000040331476630434000277300ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def get_bay_model(uuid_or_name) request( :expects => [200], :method => 'GET', :path => "baymodels/#{uuid_or_name}" ) end end class Mock def get_bay_model(_uuid_or_name) response = Excon::Response.new response.status = 200 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm2", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/get_certificate.rb000066400000000000000000000013371476630434000302630ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def get_certificate(bay_uuid) request( :expects => [200], :method => 'GET', :path => "certificates/#{cluster_uuid}" ) end end class Mock def get_certificate(_bay_uuid) response = Excon::Response.new response.status = 200 response.body = { "pem" => "-----BEGIN CERTIFICATE-----\nMIICzDCCAbSgAwIBAgIQOOkVcEN7TNa9E80GoUs4xDANBgkqhkiG9w0BAQsFADAO\n-----END CERTIFICATE-----\n", "bay_uuid" => "0b4b766f-1500-44b3-9804-5a6e12fe6df4" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/get_cluster.rb000066400000000000000000000027121476630434000274600ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def get_cluster(uuid_or_name) request( :expects => [200], :method => 'GET', :path => "clusters/#{uuid_or_name}" ) end end class Mock def get_cluster(_uuid_or_name) response = Excon::Response.new response.status = 200 response.body = { "status" => "CREATE_COMPLETE", "uuid" => "746e779a-751a-456b-a3e9-c883d734946f", "stack_id" => "9c6f1169-7300-4d08-a444-d2be38758719", "created_at" => "2016-08-29T06:51:31+00:00", "api_address" => "https://172.24.4.6:6443", "discovery_url" => "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", "updated_at" => "2016-08-29T06:53:24+00:00", "master_count" => 1, "coe_version" => "v1.2.0", "cluster_template_id" => "0562d357-8641-4759-8fed-8173f02c9633", "master_addresses" => ["172.24.4.6"], "node_count" => 1, "node_addresses" => ["172.24.4.13"], "status_reason" => "Stack CREATE completed successfully", "create_timeout" => 60, "name" => "k8s" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/get_cluster_template.rb000066400000000000000000000040601476630434000313510ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def get_cluster_template(uuid_or_name) request( :expects => [200], :method => 'GET', :path => "clustertemplates/#{uuid_or_name}" ) end end class Mock def get_cluster_template(_uuid_or_name) response = Excon::Response.new response.status = 200 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm2", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/list_bay_models.rb000066400000000000000000000051501476630434000303100ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def list_bay_models request( :expects => [200], :method => 'GET', :path => "baymodels/detail" ) end end class Mock def list_bay_models response = Excon::Response.new response.status = 200 response.body = { "baymodels" => [ { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm2", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8", "links" => [ { "href" => "http://10.164.180.104:9511/v1/baymodels/085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "rel" => "self" }, { "href" => "http://10.164.180.104:9511/baymodels/085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "rel" => "bookmark" } ] } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/list_bays.rb000066400000000000000000000037011476630434000271300ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def list_bays request( :expects => [200], :method => 'GET', :path => "bays/detail" ) end end class Mock def list_bays response = Excon::Response.new response.status = 200 response.body = { "bays" => [ { "status" => "CREATE_COMPLETE", "uuid" => "746e779a-751a-456b-a3e9-c883d734946f", "stack_id" => "9c6f1169-7300-4d08-a444-d2be38758719", "created_at" => "2016-08-29T06:51:31+00:00", "api_address" => "https://172.24.4.6:6443", "discovery_url" => "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", "updated_at" => "2016-08-29T06:53:24+00:00", "master_count" => 1, "coe_version" => "v1.2.0", "baymodel_id" => "0562d357-8641-4759-8fed-8173f02c9633", "master_addresses" => ["172.24.4.6"], "node_count" => 1, "node_addresses" => ["172.24.4.13"], "status_reason" => "Stack CREATE completed successfully", "bay_create_timeout" => 60, "name" => "k8s", "links" => [ { "href" => "http://10.164.180.104:9511/v1/bays/746e779a-751a-456b-a3e9-c883d734946f", "rel" => "self" }, { "href" => "http://10.164.180.104:9511/bays/746e779a-751a-456b-a3e9-c883d734946f", "rel" => "bookmark" } ] } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/list_cluster_templates.rb000066400000000000000000000043301476630434000317300ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def list_cluster_templates request( :expects => [200], :method => 'GET', :path => "clustertemplates/detail" ) end end class Mock def list_cluster_templates response = Excon::Response.new response.status = 200 response.body = { "clustertemplates" => [ { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "0562d357-8641-4759-8fed-8173f02c9633", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "k8s-bm", "created_at" => "2016-08-26T09:34:41+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => false, "dns_nameserver" => "8.8.8.8" } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/list_clusters.rb000066400000000000000000000020101476630434000300260ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def list_clusters request( :expects => [200], :method => 'GET', :path => "clusters/detail" ) end end class Mock def list_clusters response = Excon::Response.new response.status = 200 response.body = { "clusters" => [ { "status" => "CREATE_IN_PROGRESS", "cluster_template_id" => "0562d357-8641-4759-8fed-8173f02c9633", "uuid" => "731387cf-a92b-4c36-981e-3271d63e5597", "stack_id" => "31c1ee6c-081e-4f39-9f0f-f1d87a7defa1", "master_count" => 1, "create_timeout" => 60, "node_count" => 1, "name" => "k8s" } ] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/update_bay.rb000066400000000000000000000011731476630434000272550ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def update_bay(uuid_or_name, params) request( :expects => [202, 200], :method => 'PATCH', :path => "bays/#{uuid_or_name}", :body => Fog::JSON.encode(params) ) end end class Mock def update_bay(_uuid_or_name, _params) response = Excon::Response.new response.status = 202 response.body = { "uuid" => "746e779a-751a-456b-a3e9-c883d734946f" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/update_bay_model.rb000066400000000000000000000041651476630434000304410ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def update_bay_model(uuid_or_name, params) request( :expects => [200], :method => 'PATCH', :path => "baymodels/#{uuid_or_name}", :body => Fog::JSON.encode(params) ) end end class Mock def update_bay_model(_uuid_or_name, _params) response = Excon::Response.new response.status = 200 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "rename-test-bay-model", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8", } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/update_cluster.rb000066400000000000000000000012071476630434000301610ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def update_cluster(uuid_or_name, params) request( :expects => [202, 200], :method => 'PATCH', :path => "clusters/#{uuid_or_name}", :body => Fog::JSON.encode(params) ) end end class Mock def update_cluster(_uuid_or_name, _params) response = Excon::Response.new response.status = 202 response.body = { "uuid" => "746e779a-751a-456b-a3e9-c883d734946f" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/container_infra/requests/update_cluster_template.rb000066400000000000000000000042201476630434000320520ustar00rootroot00000000000000module Fog module OpenStack class ContainerInfra class Real def update_cluster_template(uuid_or_name, params) request( :expects => [200], :method => 'PATCH', :path => "clustertemplates/#{uuid_or_name}", :body => Fog::JSON.encode(params) ) end end class Mock def update_cluster_template(_uuid_or_name, _params) response = Excon::Response.new response.status = 200 response.body = { "insecure_registry" => nil, "http_proxy" => "http://10.164.177.169:8080", "updated_at" => nil, "floating_ip_enabled" => true, "fixed_subnet" => nil, "master_flavor_id" => nil, "uuid" => "085e1c4d-4f68-4bfd-8462-74b9e14e4f39", "no_proxy" => "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost", "https_proxy" => "http://10.164.177.169:8080", "tls_disabled" => false, "keypair_id" => "kp", "public" => false, "labels" => {}, "docker_volume_size" => 3, "server_type" => "vm", "external_network_id" => "public", "cluster_distro" => "fedora-atomic", "image_id" => "fedora-atomic-latest", "volume_driver" => "cinder", "registry_enabled" => false, "docker_storage_driver" => "devicemapper", "apiserver_port" => nil, "name" => "rename-test-cluster-template", "created_at" => "2016-08-29T02:08:08+00:00", "network_driver" => "flannel", "fixed_network" => nil, "coe" => "kubernetes", "flavor_id" => "m1.small", "master_lb_enabled" => true, "dns_nameserver" => "8.8.8.8" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/core.rb000066400000000000000000000221221476630434000210510ustar00rootroot00000000000000module Fog module OpenStack module Core attr_accessor :auth_token attr_reader :unscoped_token attr_reader :openstack_cache_ttl attr_reader :auth_token_expiration attr_reader :current_user attr_reader :current_user_id attr_reader :current_tenant attr_reader :openstack_domain_name attr_reader :openstack_user_domain attr_reader :openstack_project_domain attr_reader :openstack_domain_id attr_reader :openstack_user_domain_id attr_reader :openstack_project_id attr_reader :openstack_project_domain_id attr_reader :openstack_identity_api_version attr_reader :openstack_application_credential_id attr_reader :openstack_application_credential_secret # fallback def self.not_found_class Fog::OpenStack::Compute::NotFound end def credentials options = { :provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :current_user => @current_user, :current_user_id => @current_user_id, :current_tenant => @current_tenant, :unscoped_token => @unscoped_token } openstack_options.merge options end def reload @connection.reset end def initialize(options = {}) setup(options) authenticate @connection = Fog::Core::Connection.new(@openstack_management_url, @persistent, @connection_options) end private def request(params, parse_json = true) retried = false begin authenticate! if @expires && (@expires - Time.now.utc).to_i < 60 response = @connection.request( params.merge( :headers => headers(params[:headers]), :path => "#{@path}/#{params[:path]}" ) ) rescue Excon::Errors::Unauthorized, Excon::Error::Unauthorized => error # token expiration and token renewal possible if error.response.body != 'Bad username or password' && @openstack_can_reauthenticate && !retried authenticate! retried = true retry # bad credentials or token renewal not possible else raise error end rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound self.class.not_found_class.slurp(error) else error end end if !response.body.empty? && response.get_header('Content-Type').match('application/json') # TODO: remove parse_json in favor of :raw_body response.body = Fog::JSON.decode(response.body) if parse_json && !params[:raw_body] end response end def set_microversion @microversion_key ||= 'Openstack-API-Version'.freeze @microversion_service_type ||= @openstack_service_type.first @microversion = Fog::OpenStack.get_supported_microversion( @supported_versions, @openstack_management_uri, @auth_token, @connection_options ).to_s # choose minimum out of reported and supported version if microversion_newer_than?(@supported_microversion) @microversion = @supported_microversion end # choose minimum out of set and wished version if @fixed_microversion && microversion_newer_than?(@fixed_microversion) @microversion = @fixed_microversion elsif @fixed_microversion && @microversion != @fixed_microversion Fog::Logger.warning("Microversion #{@fixed_microversion} not supported") end end def microversion_newer_than?(version) Gem::Version.new(version) < Gem::Version.new(@microversion) end def headers(additional_headers) additional_headers ||= {} unless @microversion.nil? || @microversion.empty? microversion_value = if @microversion_key == 'Openstack-API-Version' "#{@microversion_service_type} #{@microversion}" else @microversion end microversion_header = {@microversion_key => microversion_value} additional_headers.merge!(microversion_header) end { 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'X-Auth-Token' => @auth_token }.merge!(additional_headers) end def openstack_options options = {} # Create a hash of (:openstack_*, value) of all the @openstack_* instance variables instance_variables.select { |x| x.to_s.start_with? '@openstack' }.each do |openstack_param| option_name = openstack_param.to_s[1..-1] options[option_name.to_sym] = instance_variable_get openstack_param end options end def api_path_prefix path = '' if @openstack_management_uri && @openstack_management_uri.path != '/' path = @openstack_management_uri.path end unless default_path_prefix.empty? path << '/' + default_path_prefix end path end def default_endpoint_type 'public' end def default_path_prefix '' end def setup(options) if options.respond_to?(:config_service?) && options.config_service? configure(options) return end # Create @openstack_* instance variables from all :openstack_* options options.select { |x| x.to_s.start_with? 'openstack' }.each do |openstack_param, value| instance_variable_set "@#{openstack_param}".to_sym, value end # Ensure OpenStack User's Password is always a String @openstack_api_key = @openstack_api_key.to_s if @openstack_api_key @auth_token ||= options[:openstack_auth_token] @openstack_must_reauthenticate = false @openstack_endpoint_type = options[:openstack_endpoint_type] || 'public' @openstack_cache_ttl = options[:openstack_cache_ttl] || 0 if @auth_token @openstack_can_reauthenticate = false else missing_credentials = [] unless @openstack_application_credential_secret and @openstack_application_credential_id missing_credentials << :openstack_api_key unless @openstack_api_key unless @openstack_username || @openstack_userid missing_credentials << 'openstack_username/openstack_userid or openstack_application_credential_secret and openstack_application_credential_id' end end unless missing_credentials.empty? raise ArgumentError, "Missing required arguments: #{missing_credentials.join(', ')}" end @openstack_can_reauthenticate = true end @current_user = options[:current_user] @current_user_id = options[:current_user_id] @current_tenant = options[:current_tenant] @openstack_service_type = options[:openstack_service_type] || default_service_type @openstack_endpoint_type = options[:openstack_endpoint_type] || default_endpoint_type @openstack_endpoint_type = @openstack_endpoint_type.gsub(/URL/, '') @connection_options = options[:connection_options] || {} @persistent = options[:persistent] || false end def authenticate if !@openstack_management_url || @openstack_must_reauthenticate @openstack_auth_token = nil if @openstack_must_reauthenticate token = Fog::OpenStack::Auth::Token.build(openstack_options, @connection_options) @openstack_management_url = if token.catalog && !token.catalog.payload.empty? token.catalog.get_endpoint_url( @openstack_service_type, @openstack_endpoint_type, @openstack_region ) else @openstack_auth_url end @current_user = token.user['name'] @current_user_id = token.user['id'] @current_tenant = token.tenant @expires = Time.parse(token.expires) @auth_token = token.token @unscoped_token = token.token @openstack_must_reauthenticate = false else @auth_token = @openstack_auth_token end @openstack_management_uri = URI.parse(@openstack_management_url) # both need to be set in service's initialize for microversions to work set_microversion if @supported_microversion && @supported_versions @path = api_path_prefix true end def authenticate! @openstack_must_reauthenticate = true authenticate end end end end fog-openstack-1.1.5/lib/fog/openstack/dns.rb000066400000000000000000000012711476630434000207070ustar00rootroot00000000000000module Fog module OpenStack class DNS < Fog::Service autoload :V1, 'fog/openstack/dns/v1' autoload :V2, 'fog/openstack/dns/v2' # Fog::OpenStack::DNS.new() will return a Fog::OpenStack::DNS::V2 or a Fog::OpenStack::DNS::V1, # choosing the latest available def self.new(args = {}) @openstack_auth_uri = URI.parse(args[:openstack_auth_url]) if args[:openstack_auth_url] if inspect == 'Fog::OpenStack::DNS' service = Fog::OpenStack::DNS::V2.new(args) unless args.empty? service ||= Fog::OpenStack::DNS::V1.new(args) else service = Fog::Service.new(args) end service end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/000077500000000000000000000000001476630434000203615ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v1.rb000066400000000000000000000077471476630434000212530ustar00rootroot00000000000000require 'fog/openstack/dns' module Fog module OpenStack class DNS class V1 < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_userid, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_auth_omit_default_port, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_temp_url_key, :openstack_cache_ttl request_path 'fog/openstack/dns/v1/requests' request :list_domains request :get_quota request :update_quota class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :domains => [{ "id" => "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "name" => "example.org.", "email" => "joe@example.org", "ttl" => 7200, "serial" => 1_404_757_531, "description" => "This is an example zone.", "created_at" => "2014-07-07T18:25:31.275934", "updated_at" => '' }], :quota => { "api_export_size" => 1000, "recordset_records" => 20, "domain_records" => 500, "domain_recordsets" => 500, "domains" => 100 } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9001 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::DNS::NotFound end def default_path_prefix 'v1' end def default_service_type %w[dns] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v1/000077500000000000000000000000001476630434000207075ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v1/requests/000077500000000000000000000000001476630434000225625ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v1/requests/get_quota.rb000066400000000000000000000010621476630434000250760ustar00rootroot00000000000000module Fog module OpenStack class DNS class V1 class Real def get_quota(project_id) request( :expects => 200, :method => 'GET', :path => "quotas/#{project_id}" ) end end class Mock def get_quota(_project_id) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] || data[:quota] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v1/requests/list_domains.rb000066400000000000000000000011131476630434000255700ustar00rootroot00000000000000module Fog module OpenStack class DNS class V1 class Real def list_domains(options = {}) request( :expects => 200, :method => 'GET', :path => 'domains', :query => options ) end end class Mock def list_domains(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'domains' => data[:domains]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v1/requests/update_quota.rb000066400000000000000000000014251476630434000256040ustar00rootroot00000000000000module Fog module OpenStack class DNS class V1 class Real def update_quota(project_id, options = {}) request( :body => Fog::JSON.encode(options), :expects => 200, :method => 'PUT', :path => "quotas/#{project_id}" ) end end class Mock def update_quota(_project_id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:quota_updated] = data[:quota].merge(options) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2.rb000066400000000000000000000324421476630434000212420ustar00rootroot00000000000000require 'fog/openstack/dns' module Fog module OpenStack class DNS class V2 < Fog::Service SUPPORTED_VERSIONS = /v2/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_userid, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_auth_omit_default_port, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_temp_url_key, :openstack_cache_ttl model_path 'fog/openstack/dns/v2/models' model :zone collection :zones model :recordset collection :recordsets model :pool collection :pools model :zone_transfer_request collection :zone_transfer_requests model :zone_transfer_accept collection :zone_transfer_accepts request_path 'fog/openstack/dns/v2/requests' request :list_zones request :get_zone request :create_zone request :update_zone request :delete_zone request :list_recordsets request :get_recordset request :create_recordset request :update_recordset request :delete_recordset request :list_pools request :get_pool request :get_quota request :update_quota request :create_zone_transfer_request request :get_zone_transfer_request request :list_zone_transfer_requests request :update_zone_transfer_request request :delete_zone_transfer_request request :create_zone_transfer_accept request :get_zone_transfer_accept request :list_zone_transfer_accepts def self.setup_headers(options) # user needs to have admin privileges to ask for all projects all_projects = options.delete(:all_projects) || false # user needs to have admin privileges to impersonate another project # don't ask for all and one project at the same time project_id = options.delete(:project_id) unless all_projects headers = {'X-Auth-All-Projects' => all_projects} headers['X-Auth-Sudo-Project-Id'] = project_id unless project_id.nil? [headers, options] end class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :zones => [{ "id" => "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id" => "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id" => "4335d1f0-f793-11e2-b778-0800200c9a66", "name" => "example.org.", "email" => "joe@example.org", "ttl" => 7200, "serial" => 1_404_757_531, "status" => "ACTIVE", "action" => "NONE", "description" => "This is an example zone.", "masters" => [], "type" => "PRIMARY", "transferred_at" => '', "version" => 1, "created_at" => "2014-07-07T18:25:31.275934", "updated_at" => '', "links" => { "self" => "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } }], :pools => { "metadata" => { "total_count" => 2 }, "links" => { "self" => "http://127.0.0.1:9001/v2/pools" }, "pools" => [ { "description" => '', "id" => "794ccc2c-d751-44fe-b57f-8894c9f5c842", "project_id" => '', "created_at" => "2015-02-18T22:18:58.000000", "attributes" => '', "ns_records" => [ { "hostname" => "ns1.example.org.", "priority" => 1 } ], "links" => { "self" => "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842" }, "name" => "default", "updated_at" => "2015-02-19T15:59:44.000000" }, { "description" => '', "id" => "d1716333-8c16-490f-85ee-29af36907605", "project_id" => "noauth-project", "created_at" => "2015-02-23T21:56:33.000000", "attributes" => '', "ns_records" => [ { "hostname" => "ns2.example.org.", "priority" => 1 } ], "links" => { "self" => "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605" }, "name" => "example_pool", "updated_at" => '' } ] }, :quota => { "api_export_size" => 1000, "recordset_records" => 20, "zone_records" => 500, "zone_recordsets" => 500, "zones" => 100 }, :recordsets => { "recordsets" => [{ "description" => "This is an example record set.", "links" => { "self" => "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at" => '', "records" => [ "10.1.0.2" ], "ttl" => 3600, "id" => "f7b10e9b-0cae-4a91-b162-562bc6096648", "name" => "example.org.", "project_id" => "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id" => "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name" => "example.com.", "created_at" => "2014-10-24T19:59:44.000000", "version" => 1, "type" => "A", "status" => "ACTIVE", "action" => "NONE" }], "links" => { "self" => "http://127.0.0.1:9001/v2/recordsets?limit=1", "next" => "http://127.0.0.1:9001/v2/recordsets?limit=1&marker=45fd892d-7a67-4f65-9df0-87273f228d6c" }, "metadata" => { "total_count" => 2 } }, :zone_transfer_requests => { "transfer_requests" => [ { "created_at" => "2014-07-17T20:34:40.882579", "description" => "This was created by the requesting project", "id" => "f2ad17b5-807a-423f-a991-e06236c247be", "key" => "9Z2R50Y0", "project_id" => "1", "status" => "ACTIVE", "target_project_id" => "123456", "updated_at" => nil, "zone_id" => "6b78734a-aef1-45cd-9708-8eb3c2d26ff8", "zone_name" => "qa.dev.example.com.", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/f2ad17b5-807a-423f-a991-e06236c247be" } }, { "description" => "This is scoped to the requesting project", "id" => "efd2d720-b0c4-43d4-99f7-d9b53e08860d", "zone_id" => "2c4d5e37-f823-4bee-9859-031cb44f80e7", "zone_name" => "subdomain.example.com.", "status" => "ACTIVE", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/efd2d720-b0c4-43d4-99f7-d9b53e08860d" } } ], "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests" } }, :zone_transfer_accepts => { "metadata" => { "total_count" => 2 }, "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts" }, "transfer_accepts" => [ { "status" => "COMPLETE", "zone_id" => "8db93d1a-59e3-4143-a393-5821abea0a46", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone" => "http://127.0.0.1:9001/v2/zones/8db93d1a-59e3-4143-a393-5821abea0a46" }, "created_at" => "2016-06-01 05:35:35", "updated_at" => "2016-06-01 05:35:35", "key" => nil, "project_id" => "85604ecfb5334b50bd40ca53fc1d710f", "id" => "afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone_transfer_request_id" => "d223f7ef-77a6-459e-abd3-b4dbc97338e7" }, { "status" => "COMPLETE", "zone_id" => "925bfc45-8901-4aca-aa12-18afaf0879e2", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/ecbc7091-c498-4ec4-9893-68b06297fe50", "zone" => "http://127.0.0.1:9001/v2/zones/925bfc45-8901-4aca-aa12-18afaf0879e2" }, "created_at" => "2016-06-01 10:06:36", "updated_at" => "2016-06-01 10:06:37", "key" => nil, "project_id" => "85604ecfb5334b50bd40ca53fc1d710f", "id" => "ecbc7091-c498-4ec4-9893-68b06297fe50", "zone_transfer_request_id" => "94cf9bd3-4137-430b-bf75-4e690430258c" } ] } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9001 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::DNS::NotFound end def default_path_prefix 'v2' end def default_service_type %w[dns] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/000077500000000000000000000000001476630434000207105ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/000077500000000000000000000000001476630434000221735ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/pool.rb000066400000000000000000000006421476630434000234730ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class DNS class V2 class Pool < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :ns_records attribute :project_id attribute :links attribute :created_at attribute :updated_at end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/pools.rb000066400000000000000000000011221476630434000236500ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/dns/v2/models/pool' module Fog module OpenStack class DNS class V2 class Pools < Fog::OpenStack::Collection model Fog::OpenStack::DNS::V2::Pool def all(options = {}) load_response(service.list_pools(options), 'pools') end def find_by_id(id, options = {}) pool_hash = service.get_pool(id, options).body new(pool_hash.merge(:service => service)) end alias get find_by_id end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/recordset.rb000066400000000000000000000027701476630434000245200ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class DNS class V2 class Recordset < Fog::OpenStack::Model identity :id attribute :name attribute :project_id attribute :status attribute :action attribute :zone_id attribute :zone_name attribute :type attribute :records attribute :version attribute :created_at attribute :links attribute :ttl attribute :description attribute :updated_at def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :zone_id, :name, :type, :records merge_attributes(service.create_recordset(zone_id, name, type, records, attributes).body) true end # overwritten because zone_id is needed for get def reload(options = {}) requires :zone_id, :id merge_attributes(collection.get(zone_id, id, options).attributes) self end def update(options = nil) requires :zone_id, :id merge_attributes(service.update_recordset(zone_id, id, options || attributes).body) self end def destroy(options = {}) requires :zone_id, :id service.delete_recordset(zone_id, id, options) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/recordsets.rb000066400000000000000000000014431476630434000246770ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/dns/v2/models/recordset' module Fog module OpenStack class DNS class V2 class Recordsets < Fog::OpenStack::Collection model Fog::OpenStack::DNS::V2::Recordset def all(options = {}) load_response(service.list_recordsets(options), 'recordsets') end def find_by_id(zone_id, id, options = {}) recordset_hash = service.get_recordset(zone_id, id, options).body new(recordset_hash.merge(:service => service)) end alias get find_by_id def destroy(zone_id, id, options = {}) recordset = find_by_id(zone_id, id, options) recordset.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zone.rb000066400000000000000000000023471476630434000235010ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class DNS class V2 class Zone < Fog::OpenStack::Model identity :id attribute :name attribute :email attribute :pool_id attribute :project_id attribute :serial attribute :status attribute :action attribute :masters attribute :version attribute :links attribute :created_at attribute :transfered_at attribute :ttl attribute :description attribute :type attribute :updated_at def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :name, :email merge_attributes(service.create_zone(name, email, attributes).body) true end def update(options = nil) requires :id merge_attributes(service.update_zone(id, options || attributes).body) self end def destroy(options = {}) requires :id service.delete_zone(id, options) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zone_transfer_accept.rb000066400000000000000000000012311476630434000267130ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class DNS class V2 class ZoneTransferAccept < Fog::OpenStack::Model identity :id attribute :status attribute :project_id attribute :zone_id attribute :key attribute :created_at attribute :updated_at attribute :zone_transfer_request_id attribute :links def save unless persisted? merge_attributes(service.create_zone_transfer_accept(key, zone_transfer_request_id)) end true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zone_transfer_accepts.rb000066400000000000000000000012621476630434000271020ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/dns/v2/models/zone_transfer_accept' module Fog module OpenStack class DNS class V2 class ZoneTransferAccepts < Fog::OpenStack::Collection model Fog::OpenStack::DNS::V2::ZoneTransferAccept def all(options = {}) load_response(service.list_zone_transfer_accepts(options), 'transfer_accepts') end def find_by_id(id) zone_transfer_accept_hash = service.get_zone_transfer_accept(id).body new(zone_transfer_accept_hash.merge(:service => service)) end alias get find_by_id end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zone_transfer_request.rb000066400000000000000000000025361476630434000271550ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class DNS class V2 class ZoneTransferRequest < Fog::OpenStack::Model identity :id attribute :project_id attribute :description attribute :status attribute :zone_id attribute :zone_name attribute :key attribute :target_project_id attribute :created_at attribute :updated_at attribute :version def save if persisted? update(description: description, target_project_id: target_project_id) else merge_attributes(ervice.create_zone_transfer_request(zone_id, { :target_project_id => target_project_id, :description => description, :project_id => project_id })) end true end def update(options = nil) requires :id merge_attributes(ervice.update_zone_transfer_request(id,options[:description],{ :target_project_id => options[:target_project_id] })) self end def destroy(options = {}) requires :id service.delete_zone_transfer_request(id) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zone_transfer_requests.rb000066400000000000000000000014361476630434000273360ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/dns/v2/models/zone_transfer_request' module Fog module OpenStack class DNS class V2 class ZoneTransferRequests < Fog::OpenStack::Collection model Fog::OpenStack::DNS::V2::ZoneTransferRequest def all(options = {}) load_response(service.list_zone_transfer_requests(options), 'transfer_requests') end def find_by_id(id) zone_transfer_request_hash = service.get_zone_transfer_request(id).body new(zone_transfer_request_hash.merge(:service => service)) end alias get find_by_id def destroy(id) zone = find_by_id(id) zone.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/models/zones.rb000066400000000000000000000013151476630434000236560ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/dns/v2/models/zone' module Fog module OpenStack class DNS class V2 class Zones < Fog::OpenStack::Collection model Fog::OpenStack::DNS::V2::Zone def all(options = {}) load_response(service.list_zones(options), 'zones') end def find_by_id(id, options = {}) zone_hash = service.get_zone(id, options).body new(zone_hash.merge(:service => service)) end alias get find_by_id def destroy(id, options = {}) zone = find_by_id(id, options) zone.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/000077500000000000000000000000001476630434000225635ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/create_recordset.rb000066400000000000000000000031071476630434000264260ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def create_recordset(zone_id, name, type, records, options = {}) data = { 'name' => name, 'type' => type, 'records' => records } vanilla_options = [:ttl, :description] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'POST', :path => "zones/#{zone_id}/recordsets" ) end end class Mock def create_recordset(zone_id, name, type, records, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 202 recordset = data[:recordsets]["recordsets"].first.dup recordset_id = recordset["id"] recordset["zone_id"] = zone_id recordset["name"] = name recordset["type"] = type recordset["records"] = records recordset["status"] = "PENDING" recordset["action"] = "CREATE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{recordset_id}" response.body = recordset.merge(options) response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/create_zone.rb000066400000000000000000000023161476630434000254100ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def create_zone(name, email, options = {}) data = { 'name' => name, 'email' => email } vanilla_options = [:ttl, :description, :type, :masters, :attributes] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'POST', :path => "zones" ) end end class Mock def create_zone(name, email, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 202 zone = data[:zones].first.dup zone["name"] = name zone["email"] = email zone["status"] = "PENDING" zone["action"] = "CREATE" response.body = zone.merge(options) response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/create_zone_transfer_accept.rb000066400000000000000000000017141476630434000306340ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def create_zone_transfer_accept(key, zone_transfer_request_id, options = {}) data = { :key => key, :zone_transfer_request_id => zone_transfer_request_id } headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :headers => headers, :body => Fog::JSON.encode(data), :expects => 200, :method => 'POST', :path => "zones/tasks/transfer_accepts" ) end end class Mock def create_zone_transfer_accept(key, zone_transfer_request_id) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_accepts]["transfer_accepts"].first response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/create_zone_transfer_request.rb000066400000000000000000000017001476630434000310600ustar00rootroot00000000000000 module Fog module OpenStack class DNS class V2 class Real def create_zone_transfer_request(zone_id, options = {}) vanilla_options = [:target_project_id, :description, :project_id] data = vanilla_options.inject({}) do |result,option| result[option] = options[option] if options[option] result end request( :body => Fog::JSON.encode(data), :expects => 201, :method => 'POST', :path => "zones/#{zone_id}/tasks/transfer_requests" ) end end class Mock def create_zone_transfer_request(zone_id, options = {}) response = Excon::Response.new response.status = 201 response.body = data[:zone_transfer_requests]["transfer_requests"].first response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/delete_recordset.rb000066400000000000000000000021371476630434000264270ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def delete_recordset(zone_id, id, options = {}) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 202, :method => 'DELETE', :path => "zones/#{zone_id}/recordsets/#{id}", :headers => headers ) end end class Mock def delete_recordset(zone_id, id, _options = {}) response = Excon::Response.new response.status = 202 recordset = data[:recordset_updated] || data[:recordsets]["recordsets"].first.dup recordset["zone_id"] = zone_id recordset["id"] = id recordset["status"] = "PENDING" recordset["action"] = "DELETE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response.body = recordset response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/delete_zone.rb000066400000000000000000000016601476630434000254100ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def delete_zone(id, options = {}) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 202, :method => 'DELETE', :path => "zones/#{id}", :headers => headers ) end end class Mock def delete_zone(id, _options = {}) response = Excon::Response.new response.status = 202 zone = data[:zone_updated] || data[:zones].first.dup zone["id"] = id zone["status"] = "PENDING" zone["action"] = "DELETE" zone["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{id}" response.body = zone response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/delete_zone_transfer_request.rb000066400000000000000000000011331476630434000310570ustar00rootroot00000000000000 module Fog module OpenStack class DNS class V2 class Real def delete_zone_transfer_request(zone_transfer_request_id) request( :expects => 204, :method => 'DELETE', :path => "zones/tasks/transfer_requests/#{zone_transfer_request_id}" ) end end class Mock def delete_zone_transfer_request(zone_transfer_request_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_pool.rb000066400000000000000000000013471476630434000247250ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def get_pool(id, options = {}) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => "pools/#{id}", :headers => headers ) end end class Mock def get_pool(id, _options = {}) response = Excon::Response.new response.status = 200 pool = data[:pool_updated] || data[:pools]['pools'].first pool['id'] = id response.body = pool response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_quota.rb000066400000000000000000000013131476630434000250760ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def get_quota(project_id = nil) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(:all_projects => !project_id.nil?) request( :expects => 200, :method => 'GET', :path => "quotas/#{project_id}", :headers => headers ) end end class Mock def get_quota(_project_id = nil) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] || data[:quota] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_recordset.rb000066400000000000000000000021001476630434000257320ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def get_recordset(zone_id, id, options = {}) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => "zones/#{zone_id}/recordsets/#{id}", :headers => headers ) end end class Mock def get_recordset(zone_id, id) response = Excon::Response.new response.status = 200 recordset = data[:recordset_updated] || data[:recordsets]["recordsets"].first recordset["zone_id"] = zone_id recordset["id"] = id recordset["action"] = "NONE" recordset["status"] = "ACTIVE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response.body = recordset response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_zone.rb000066400000000000000000000013361476630434000247250ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def get_zone(id, options = {}) headers, _options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => "zones/#{id}", :headers => headers ) end end class Mock def get_zone(id, _options = {}) response = Excon::Response.new response.status = 200 zone = data[:zone_updated] || data[:zones].first zone["id"] = id response.body = zone response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_zone_transfer_accept.rb000066400000000000000000000013561476630434000301520ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def get_zone_transfer_accept(zone_transfer_accept_id) request( :expects => 200, :method => 'GET', :path => "zones/tasks/transfer_requests/#{zone_transfer_accept_id}" ) end end class Mock def get_zone_transfer_accept(zone_transfer_accept_id) response = Excon::Response.new response.status = 200 accept = data[:zone_transfer_accepts]["transfer_accepts"].first accept["id"] = zone_transfer_accept_id response.body = accept response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/get_zone_transfer_request.rb000066400000000000000000000013721476630434000304010ustar00rootroot00000000000000 module Fog module OpenStack class DNS class V2 class Real def get_zone_transfer_request(zone_transfer_request_id) request( :expects => 200, :method => 'GET', :path => "zones/tasks/transfer_requests/#{zone_transfer_request_id}" ) end end class Mock def get_zone_transfer_request(zone_transfer_request_id) response = Excon::Response.new response.status = 200 request = data[:zone_transfer_requests]["transfer_requests"].first request["id"] = zone_transfer_request_id response.body = request response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/list_pools.rb000066400000000000000000000012461476630434000253020ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def list_pools(options = {}) headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => 'pools', :query => options, :headers => headers ) end end class Mock def list_pools(_options = {}) response = Excon::Response.new response.status = 200 response.body = data[:pools] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/list_recordsets.rb000066400000000000000000000031351476630434000263220ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def list_recordsets(zone_id = nil, options = {}) # for backward compatability: consider removing the zone_id param (breaking change) unless zone_id.nil? if zone_id.kind_of?(Hash) options = zone_id zone_id = nil else Fog::Logger.deprecation( 'Calling list_recordsets(zone_id) is deprecated, use .list_recordsets(zone_id: value) instead' ) end end zone_id = options.delete(:zone_id) if zone_id.nil? path = zone_id.nil? ? 'recordsets' : "zones/#{zone_id}/recordsets" headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => path, :query => options, :headers => headers ) end end class Mock def list_recordsets(zone_id = nil, options = {}) if zone_id.kind_of?(Hash) options = zone_id zone_id = nil end zone_id = options.delete(:zone_id) if zone_id.nil? response = Excon::Response.new response.status = 200 data[:recordsets]["recordsets"].each do |rs| rs["zone_id"] = zone_id unless zone_id.nil? end response.body = data[:recordsets] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/list_zone_transfer_accepts.rb000066400000000000000000000012121476630434000305200ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def list_zone_transfer_accepts(options={}) request( :expects => 200, :method => 'GET', :path => "zones/tasks/transfer_accepts", :query => options ) end end class Mock def list_zone_transfer_accepts(options={}) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_accepts]["transfer_accepts"] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/list_zone_transfer_requests.rb000066400000000000000000000012171476630434000307560ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def list_zone_transfer_requests(options={}) request( :expects => 200, :method => 'GET', :path => "zones/tasks/transfer_requests", :query => options ) end end class Mock def list_zone_transfer_requests(options={}) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_requests]["transfer_requests"] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/list_zones.rb000066400000000000000000000012631476630434000253030ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def list_zones(options = {}) headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :expects => 200, :method => 'GET', :path => 'zones', :query => options, :headers => headers ) end end class Mock def list_zones(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'zones' => data[:zones]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/update_quota.rb000066400000000000000000000016111476630434000256020ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def update_quota(project_id, options = {}) headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :body => Fog::JSON.encode(options), :expects => 200, :method => 'PATCH', :path => "quotas/#{project_id}", :headers => headers ) end end class Mock def update_quota(_project_id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:quota_updated] = data[:quota].merge(options) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/update_recordset.rb000066400000000000000000000025041476630434000264450ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def update_recordset(zone_id, id, options = {}) headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :body => Fog::JSON.encode(options), :expects => 202, :method => 'PUT', :path => "zones/#{zone_id}/recordsets/#{id}", :headers => headers ) end end class Mock def update_recordset(zone_id, id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:recordset_updated] = data[:recordsets]["recordsets"].first.merge(options) data[:recordset_updated]["zone_id"] = zone_id data[:recordset_updated]["id"] = id data[:recordset_updated]["status"] = "PENDING" data[:recordset_updated]["action"] = "UPDATE" data[:recordset_updated]["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response = Excon::Response.new response.status = 202 response.body = data[:recordset_updated] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/update_zone.rb000066400000000000000000000022151476630434000254250ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def update_zone(id, options = {}) headers, options = Fog::OpenStack::DNS::V2.setup_headers(options) request( :body => Fog::JSON.encode(options), :expects => 202, :method => 'PATCH', :path => "zones/#{id}", :headers => headers ) end end class Mock def update_zone(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:zone_updated] = data[:zones].first.merge(options) data[:zone_updated]["id"] = id data[:zone_updated]["status"] = "PENDING" data[:zone_updated]["action"] = "UPDATE" data[:zone_updated]["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{id}" response = Excon::Response.new response.status = 202 response.body = data[:zone_updated] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/dns/v2/requests/update_zone_transfer_request.rb000066400000000000000000000021411476630434000310770ustar00rootroot00000000000000module Fog module OpenStack class DNS class V2 class Real def update_zone_transfer_request(zone_transfer_request_id,description,options={}) vanilla_options = [:target_project_id] data = vanilla_options.inject({}) do |result,option| result[option] = options[option] if options[option] result end request( :expects => 200, :method => 'PATCH', :path => "zones/tasks/transfer_requests/#{zone_transfer_request_id}", :body => Fog::JSON.encode(data) ) end end class Mock def update_zone_transfer_request(zone_transfer_request_id,description,options={}) response = Excon::Response.new response.status = 200 request = data[:zone_transfer_requests]["transfer_requests"] request.id = zone_transfer_request_id request.description =description response.body = request response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/errors.rb000066400000000000000000000022571476630434000214440ustar00rootroot00000000000000module Fog module OpenStack module Errors class ServiceError < Fog::Errors::Error attr_reader :response_data def self.slurp(error) if error.response.body.empty? data = nil message = nil else data = Fog::JSON.decode(error.response.body) message = data['message'] if message.nil? and !data.values.first.nil? message = data.values.first['message'] end end new_error = super(error, message) new_error.instance_variable_set(:@response_data, data) new_error end end class ServiceUnavailable < ServiceError; end class BadRequest < ServiceError attr_reader :validation_errors def self.slurp(error) new_error = super(error) unless new_error.response_data.nil? or new_error.response_data['badRequest'].nil? new_error.instance_variable_set(:@validation_errors, new_error.response_data['badRequest']['validationErrors']) end new_error end end class InterfaceNotImplemented < Fog::Errors::Error; end end end end fog-openstack-1.1.5/lib/fog/openstack/event.rb000066400000000000000000000060721476630434000212500ustar00rootroot00000000000000module Fog module OpenStack class Event < Fog::Service SUPPORTED_VERSIONS = /v2/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/event/models' model :event collection :events request_path 'fog/openstack/event/requests' request :get_event request :list_events class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8779 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Event::NotFound end def default_path_prefix 'v2' end def default_service_type %w[event] end end end end end fog-openstack-1.1.5/lib/fog/openstack/event/000077500000000000000000000000001476630434000207165ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/event/models/000077500000000000000000000000001476630434000222015ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/event/models/event.rb000066400000000000000000000004441476630434000236510ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Event class Event < Fog::OpenStack::Model identity :message_id attribute :event_type attribute :generated attribute :raw attribute :traits end end end end fog-openstack-1.1.5/lib/fog/openstack/event/models/events.rb000066400000000000000000000010071476630434000240300ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/event/models/event' module Fog module OpenStack class Event class Events < Fog::OpenStack::Collection model Fog::OpenStack::Event::Event def all(q = []) load_response(service.list_events(q)) end def find_by_id(message_id) event = service.get_event(message_id).body new(event) rescue Fog::OpenStack::Event::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/event/requests/000077500000000000000000000000001476630434000225715ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/event/requests/get_event.rb000066400000000000000000000011311476630434000250720ustar00rootroot00000000000000module Fog module OpenStack class Event class Real def get_event(message_id) request( :expects => 200, :method => 'GET', :path => "events/#{message_id}" ) end end class Mock def get_event(_message_id) response = Excon::Response.new response.status = 200 response.body = { 'event_type' => 'compute.instance.create', 'message_id' => 'd646b40dea6347dfb8caee2da1484c56', } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/event/requests/list_events.rb000066400000000000000000000016551476630434000254640ustar00rootroot00000000000000module Fog module OpenStack class Event class Real def list_events(options = []) data = { 'q' => [] } options.each do |opt| filter = {} ['field', 'op', 'value'].each do |key| filter[key] = opt[key] if opt[key] end data['q'] << filter unless filter.empty? end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'GET', :path => 'events' ) end end class Mock def list_events(_options = {}) response = Excon::Response.new response.status = 200 response.body = [{ 'event_type' => 'compute.instance.create', 'message_id' => 'd646b40dea6347dfb8caee2da1484c56', }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity.rb000066400000000000000000000021531476630434000217540ustar00rootroot00000000000000module Fog module OpenStack class Identity < Fog::Service autoload :V2, 'fog/openstack/identity/v2' autoload :V3, 'fog/openstack/identity/v3' def self.new(args = {}) if args[:openstack_identity_api_version] =~ /(v)*2(\.0)*/i Fog::OpenStack::Identity::V2.new(args) else Fog::OpenStack::Identity::V3.new(args) end end class Mock attr_reader :config def initialize(options = {}) @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @config = options end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Identity::NotFound end def config_service? true end def config self end def default_endpoint_type 'admin' end private def configure(source) source.instance_variables.each do |v| instance_variable_set(v, source.instance_variable_get(v)) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/000077500000000000000000000000001476630434000214265ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v2.rb000066400000000000000000000143431476630434000223070ustar00rootroot00000000000000require 'fog/openstack/identity' module Fog module OpenStack class Identity class V2 < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :no_path_prefix model_path 'fog/openstack/identity/v2/models' model :tenant collection :tenants model :user collection :users model :role collection :roles model :ec2_credential collection :ec2_credentials request_path 'fog/openstack/identity/v2/requests' request :check_token request :validate_token request :list_tenants request :create_tenant request :get_tenant request :get_tenants_by_id request :get_tenants_by_name request :update_tenant request :delete_tenant request :list_users request :create_user request :update_user request :delete_user request :get_user_by_id request :get_user_by_name request :add_user_to_tenant request :remove_user_from_tenant request :list_endpoints_for_token request :list_roles_for_user_on_tenant request :list_user_global_roles request :create_role request :delete_role request :delete_user_role request :create_user_role request :get_role request :list_roles request :set_tenant request :create_ec2_credential request :delete_ec2_credential request :get_ec2_credential request :list_ec2_credentials class Mock attr_reader :auth_token attr_reader :auth_token_expiration attr_reader :current_user attr_reader :current_tenant attr_reader :unscoped_token def self.data @users ||= {} @roles ||= {} @tenants ||= {} @ec2_credentials ||= Hash.new { |hash, key| hash[key] = {} } @user_tenant_membership ||= {} @data ||= Hash.new do |hash, key| hash[key] = { :users => @users, :roles => @roles, :tenants => @tenants, :ec2_credentials => @ec2_credentials, :user_tenant_membership => @user_tenant_membership } end end def self.reset! @data = nil @users = nil @roles = nil @tenants = nil @ec2_credentials = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] || 'admin' @openstack_tenant = options[:openstack_tenant] || 'admin' @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @openstack_management_url = @openstack_auth_uri.to_s @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 @admin_tenant = data[:tenants].values.find do |u| u['name'] == 'admin' end if @openstack_tenant @current_tenant = data[:tenants].values.find do |u| u['name'] == @openstack_tenant end if @current_tenant @current_tenant_id = @current_tenant['id'] else @current_tenant_id = Fog::Mock.random_hex(32) @current_tenant = data[:tenants][@current_tenant_id] = { 'id' => @current_tenant_id, 'name' => @openstack_tenant } end else @current_tenant = @admin_tenant end @current_user = data[:users].values.find do |u| u['name'] == @openstack_username end @current_tenant_id = Fog::Mock.random_hex(32) if @current_user @current_user_id = @current_user['id'] else @current_user_id = Fog::Mock.random_hex(32) @current_user = data[:users][@current_user_id] = { 'id' => @current_user_id, 'name' => @openstack_username, 'email' => "#{@openstack_username}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url, :openstack_current_user_id => @openstack_current_user_id, :current_user => @current_user, :current_tenant => @current_tenant} end end class Real < Fog::OpenStack::Identity::Real def api_path_prefix @path_prefix = version_in_path?(@openstack_management_uri.path) ? '' : 'v2.0' super end def default_path_prefix @path_prefix end def default_service_type %w[identity_v2 identityv2 identity] end def version_in_path?(url) true if url =~ /\/v2(\.0)*(\/)*.*$/ end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/000077500000000000000000000000001476630434000217555ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/000077500000000000000000000000001476630434000232405ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/ec2_credential.rb000066400000000000000000000016351476630434000264350ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V2 class Ec2Credential < Fog::OpenStack::Model identity :access, :aliases => 'access_key' attribute :secret, :aliases => 'secret_key' attribute :tenant_id attribute :user_id def destroy requires :access requires :user_id service.delete_ec2_credential user_id, access true end def save raise Fog::Errors::Error, 'Existing credentials cannot be altered' if access self.user_id ||= user.id self.tenant_id ||= user.tenant_id requires :user_id, :tenant_id data = service.create_ec2_credential user_id, tenant_id merge_attributes(data.body['credential']) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/ec2_credentials.rb000066400000000000000000000027471476630434000266250ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v2/models/ec2_credential' module Fog module OpenStack class Identity class V2 class Ec2Credentials < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V2::Ec2Credential attribute :user def all(options = {}) user_id = user ? user.id : nil options[:user_id] = user_id ec2_credentials = service.list_ec2_credentials(options) load_response(ec2_credentials, 'credentials') end def create(attributes = {}) if user attributes[:user_id] ||= user.id attributes[:tenant_id] ||= user.tenant_id end super attributes end def destroy(access_key) ec2_credential = find_by_access_key(access_key) ec2_credential.destroy end def find_by_access_key(access_key) user_id = user ? user.id : nil ec2_credential = find { |ec2_cred| ec2_cred.access == access_key } unless ec2_credential response = service.get_ec2_credential(user_id, access_key) body = response.body['credential'] body = body.merge 'service' => service ec2_credential = Fog::OpenStack::Identity::V2::EC2Credential.new(body) end ec2_credential end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/role.rb000066400000000000000000000024051476630434000245270ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V2 class Role < Fog::OpenStack::Model identity :id attribute :name def save requires :name data = service.create_role(name) merge_attributes(data.body['role']) true end def destroy requires :id service.delete_role(id) true end def add_to_user(user, tenant) add_remove_to_user(user, tenant, :add) end def remove_to_user(user, tenant) add_remove_to_user(user, tenant, :remove) end private def add_remove_to_user(user, tenant, ops) requires :id user_id = get_id(user) tenant_id = get_id(tenant) case ops when :add service.create_user_role(tenant_id, user_id, id).status == 200 when :remove service.delete_user_role(tenant_id, user_id, id).status == 204 end end def get_id(model_or_string) model_or_string.kind_of?(String) ? id : model_or_string.id end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/roles.rb000066400000000000000000000007341476630434000247150ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v2/models/role' module Fog module OpenStack class Identity class V2 class Roles < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V2::Role def all(options = {}) load_response(service.list_roles(options), 'roles') end def get(id) service.get_role(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/tenant.rb000066400000000000000000000025371476630434000250650ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V2 class Tenant < Fog::OpenStack::Model identity :id attribute :description attribute :enabled attribute :name def to_s name end def roles_for(user) service.roles( :tenant => self, :user => user ) end def users requires :id service.users(:tenant_id => id) end def destroy requires :id service.delete_tenant(id) true end def update(attr = nil) requires :id, :name merge_attributes( service.update_tenant(id, attr || attributes).body['tenant'] ) self end def create requires :name merge_attributes( service.create_tenant(attributes).body['tenant'] ) self end def grant_user_role(user_id, role_id) service.add_user_to_tenant(id, user_id, role_id) end def revoke_user_role(user_id, role_id) service.remove_user_from_tenant(id, user_id, role_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/tenants.rb000066400000000000000000000015351476630434000252450ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v2/models/tenant' module Fog module OpenStack class Identity class V2 class Tenants < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V2::Tenant def all(options = {}) load_response(service.list_tenants(options), 'tenants') end def find_by_id(id) cached_tenant = find { |tenant| tenant.id == id } return cached_tenant if cached_tenant tenant_hash = service.get_tenant(id).body['tenant'] Fog::OpenStack::Identity::V2::Tenant.new( tenant_hash.merge(:service => service) ) end def destroy(id) tenant = find_by_id(id) tenant.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/user.rb000066400000000000000000000035531476630434000245510ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V2 class User < Fog::OpenStack::Model identity :id attribute :email attribute :enabled attribute :name attribute :tenant_id, :aliases => 'tenantId' attribute :password attr_accessor :email, :name, :tenant_id, :enabled, :password def ec2_credentials requires :id service.ec2_credentials(:user => self) end def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :name enabled = true if enabled.nil? data = service.create_user(name, password, email, tenant_id, enabled) merge_attributes(data.body['user']) true end def update(options = {}) requires :id options.merge('id' => id) service.update_user(id, options) true end def update_password(password) update('password' => password, 'url' => "/users/#{id}/OS-KSADM/password") end def update_tenant(tenant) tenant = tenant.id if tenant.class != String update(:tenantId => tenant, 'url' => "/users/#{id}/OS-KSADM/tenant") end def update_enabled(enabled) update(:enabled => enabled, 'url' => "/users/#{id}/OS-KSADM/enabled") end def destroy requires :id service.delete_user(id) true end def roles(tenant_id = self.tenant_id) if tenant_id service.list_roles_for_user_on_tenant(tenant_id, id).body['roles'] else [] end end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/models/users.rb000066400000000000000000000022011476630434000247210ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v2/models/user' module Fog module OpenStack class Identity class V2 class Users < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V2::User attribute :tenant_id def all(options = {}) options[:tenant_id] = tenant_id load_response(service.list_users(options), 'users') end def find_by_id(id) find { |user| user.id == id } || Fog::OpenStack::Identity::V2::User.new( service.get_user_by_id(id).body['user'].merge( 'service' => service ) ) end def find_by_name(name) find { |user| user.name == name } || Fog::OpenStack::Identity::V2::User.new( service.get_user_by_name(name).body['user'].merge( 'service' => service ) ) end def destroy(id) user = find_by_id(id) user.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/000077500000000000000000000000001476630434000236305ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/add_user_to_tenant.rb000066400000000000000000000017701476630434000300230ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def add_user_to_tenant(tenant_id, user_id, role_id) request( :expects => 200, :method => 'PUT', :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}" ) end end class Mock def add_user_to_tenant(tenant_id, user_id, role_id) role = data[:roles][role_id] data[:user_tenant_membership][tenant_id] ||= {} data[:user_tenant_membership][tenant_id][user_id] ||= [] data[:user_tenant_membership][tenant_id][user_id].push(role['id']).uniq! response = Excon::Response.new response.status = 200 response.body = { 'role' => { 'id' => role['id'], 'name' => role['name'] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/check_token.rb000066400000000000000000000007521476630434000264360ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def check_token(token_id, tenant_id = nil) request( :expects => [200, 203], :method => 'HEAD', :path => "tokens/#{token_id}" + (tenant_id ? "?belongsTo=#{tenant_id}" : '') ) end end class Mock def check_token(token_id, tenant_id = nil) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/create_ec2_credential.rb000066400000000000000000000033331476630434000303450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real ## # Create an EC2 credential for a user in a tenant. Requires # administrator credentials. # # ==== Parameters # * user_id<~String>: The id of the user to create an EC2 credential # for # * tenant_id<~String>: The id of the tenant to create the credential # in # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'credential'<~Hash>: Created EC2 credential # * 'access'<~String>: The access key # * 'secret'<~String>: The secret key # * 'user_id'<~String>: The user id # * 'tenant_id'<~String>: The tenant id def create_ec2_credential(user_id, tenant_id) data = {'tenant_id' => tenant_id} request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "users/#{user_id}/credentials/OS-EC2" ) end end class Mock def create_ec2_credential(user_id, tenant_id) response = Excon::Response.new response.status = 200 data = { 'access' => Fog::Mock.random_hex(32), 'secret' => Fog::Mock.random_hex(32), 'tenant_id' => tenant_id, 'user_id' => user_id, } self.data[:ec2_credentials][user_id][data['access']] = data response.body = {'credential' => data} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/create_role.rb000066400000000000000000000015071476630434000264440ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def create_role(name) data = { 'role' => { 'name' => name } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => '/OS-KSADM/roles' ) end end class Mock def create_role(name) data = { 'id' => Fog::Mock.random_hex(32), 'name' => name } self.data[:roles][data['id']] = data Excon::Response.new( :body => {'role' => data}, :status => 202 ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/create_tenant.rb000066400000000000000000000016311476630434000267720ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def create_tenant(attributes) request( :expects => [200], :method => 'POST', :path => "tenants", :body => Fog::JSON.encode('tenant' => attributes) ) end end class Mock def create_tenant(attributes) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { 'tenant' => { 'id' => "df9a815161eba9b76cc748fd5c5af73e", 'description' => attributes[:description] || 'normal tenant', 'enabled' => true, 'name' => attributes[:name] || 'default' } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/create_user.rb000066400000000000000000000023201476630434000264530ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def create_user(name, password, email, tenantId = nil, enabled = true) data = { 'user' => { 'name' => name, 'password' => password, 'tenantId' => tenantId, 'email' => email, 'enabled' => enabled, } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => '/users' ) end end class Mock def create_user(name, _password, email, tenantId = nil, enabled = true) response = Excon::Response.new response.status = 200 data = { 'id' => Fog::Mock.random_hex(32), 'name' => name, 'email' => email, 'tenantId' => tenantId, 'enabled' => enabled } self.data[:users][data['id']] = data response.body = {'user' => data} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/create_user_role.rb000066400000000000000000000011711476630434000274770ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def create_user_role(tenant_id, user_id, role_id) request( :expects => 200, :method => 'PUT', :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}" ) end end class Mock def create_user_role(_tenant_id, _user_id, role_id) Excon::Response.new( :body => {'role' => data[:roles][role_id]}, :status => 200 ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/delete_ec2_credential.rb000066400000000000000000000022511476630434000303420ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real ## # Destroy an EC2 credential for a user. Requires administrator # credentials. # # ==== Parameters # * user_id<~String>: The id of the user to delete the credential # for # * access<~String>: The access key of the credential to destroy # # ==== Returns # * response<~Excon::Response>: # * body<~String>: Empty string def delete_ec2_credential(user_id, access) request( :expects => [200, 204], :method => 'DELETE', :path => "users/#{user_id}/credentials/OS-EC2/#{access}" ) end end class Mock def delete_ec2_credential(user_id, access) raise Fog::OpenStack::Identity::NotFound unless data[:ec2_credentials][user_id][access] data[:ec2_credentials][user_id].delete access response = Excon::Response.new response.status = 204 response rescue end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/delete_role.rb000066400000000000000000000012571476630434000264450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def delete_role(role_id) request( :expects => [200, 204], :method => 'DELETE', :path => "/OS-KSADM/roles/#{role_id}" ) end end class Mock def delete_role(role_id) response = Excon::Response.new if data[:roles][role_id] data[:roles].delete(role_id) response.status = 204 response else raise Fog::OpenStack::Identity::NotFound end end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/delete_tenant.rb000066400000000000000000000014241476630434000267710ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def delete_tenant(id) request( :expects => [200, 204], :method => 'DELETE', :path => "tenants/#{id}" ) end end class Mock def delete_tenant(_attributes) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { 'tenant' => { 'id' => '1', 'description' => 'Has access to everything', 'enabled' => true, 'name' => 'admin' } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/delete_user.rb000066400000000000000000000012741476630434000264610ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def delete_user(user_id) request( :expects => [200, 204], :method => 'DELETE', :path => "users/#{user_id}" ) end end class Mock def delete_user(user_id) data[:users].delete( list_users.body['users'].find { |x| x['id'] == user_id }['id'] ) response = Excon::Response.new response.status = 204 response rescue raise Fog::OpenStack::Identity::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/delete_user_role.rb000066400000000000000000000011271476630434000274770ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def delete_user_role(tenant_id, user_id, role_id) request( :expects => 204, :method => 'DELETE', :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}" ) end end class Mock def delete_user_role(_tenant_id, _user_id, _role_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_ec2_credential.rb000066400000000000000000000030471476630434000276630ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real ## # Retrieves an EC2 credential for a user. Requires administrator # credentials. # # ==== Parameters # * user_id<~String>: The id of the user to retrieve the credential # for # * access<~String>: The access key of the credential to retrieve # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'credential'<~Hash>: The EC2 credential # * 'access'<~String>: The access key # * 'secret'<~String>: The secret key # * 'user_id'<~String>: The user id # * 'tenant_id'<~String>: The tenant id def get_ec2_credential(user_id, access) request( :expects => [200, 202], :method => 'GET', :path => "users/#{user_id}/credentials/OS-EC2/#{access}" ) rescue Excon::Errors::Unauthorized raise Fog::OpenStack::Identity::NotFound end end class Mock def get_ec2_credential(user_id, access) ec2_credential = data[:ec2_credentials][user_id][access] raise Fog::OpenStack::Identity::NotFound unless ec2_credential response = Excon::Response.new response.status = 200 response.body = {'credential' => ec2_credential} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_role.rb000066400000000000000000000012421476630434000257540ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_role(id) request( :expects => [200, 204], :method => 'GET', :path => "/OS-KSADM/roles/#{id}" ) end end class Mock def get_role(id) response = Excon::Response.new if data = self.data[:roles][id] response.status = 200 response.body = {'role' => data} response else raise Fog::OpenStack::Identity::NotFound end end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_tenant.rb000066400000000000000000000014011476630434000263010ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_tenant(id) request( :expects => [200, 204], :method => 'GET', :path => "tenants/#{id}" ) end end class Mock def get_tenant(id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { 'tenant' => { 'id' => id, 'description' => 'Has access to everything', 'enabled' => true, 'name' => 'admin' } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_tenants_by_id.rb000066400000000000000000000005521476630434000276400ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_tenants_by_id(tenant_id) request( :expects => [200], :method => 'GET', :path => "tenants/#{tenant_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_tenants_by_name.rb000066400000000000000000000005471476630434000301700ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_tenants_by_name(name) request( :expects => [200], :method => 'GET', :path => "tenants?name=#{name}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_user_by_id.rb000066400000000000000000000015111476630434000271360ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_user_by_id(user_id) request( :expects => [200, 203], :method => 'GET', :path => "users/#{user_id}" ) end end class Mock def get_user_by_id(user_id) response = Excon::Response.new response.status = 200 existing_user = data[:users].find do |u| u[0] == user_id || u[1]['name'] == 'mock' end existing_user = existing_user[1] if existing_user response.body = { 'user' => existing_user || create_user('mock', 'mock', 'mock@email.com').body['user'] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/get_user_by_name.rb000066400000000000000000000012201476630434000274570ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def get_user_by_name(name) request( :expects => [200, 203], :method => 'GET', :path => "users?name=#{name}" ) end end class Mock def get_user_by_name(name) response = Excon::Response.new response.status = 200 user = data[:users].values.select { |u| u['name'] == name }[0] response.body = { 'user' => user } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_ec2_credentials.rb000066400000000000000000000035641476630434000302460ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real ## # List EC2 credentials for a user. Requires administrator # credentials. # # ==== Parameters hash # * :user_id<~String>: The id of the user to retrieve the credential # for # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'credentials'<~Array>: The user's EC2 credentials # * 'access'<~String>: The access key # * 'secret'<~String>: The secret key # * 'user_id'<~String>: The user id # * 'tenant_id'<~String>: The tenant id def list_ec2_credentials(options = {}) if options.kind_of?(Hash) user_id = options.delete(:user_id) query = options else Fog::Logger.deprecation('Calling OpenStack[:identity].list_ec2_credentials(user_id) is deprecated, use .list_ec2_credentials(:user_id => value)') user_id = options query = {} end request( :expects => [200, 202], :method => 'GET', :path => "users/#{user_id}/credentials/OS-EC2", :query => query ) end end class Mock def list_ec2_credentials(options = {}) user_id = if options.kind_of?(Hash) options.delete(:user_id) else options end ec2_credentials = data[:ec2_credentials][user_id].values response = Excon::Response.new response.status = 200 response.body = {'credentials' => ec2_credentials} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_endpoints_for_token.rb000066400000000000000000000005761476630434000312710ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_endpoints_for_token(token_id) request( :expects => [200, 203], :method => 'HEAD', :path => "tokens/#{token_id}/endpoints" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_roles.rb000066400000000000000000000014441476630434000263370ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_roles(options = {}) request( :expects => 200, :method => 'GET', :path => '/OS-KSADM/roles', :query => options ) end end class Mock def list_roles(_options = {}) if data[:roles].empty? ['admin', 'Member'].each do |name| id = Fog::Mock.random_hex(32) data[:roles][id] = {'id' => id, 'name' => name} end end Excon::Response.new( :body => {'roles' => data[:roles].values}, :status => 200 ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_roles_for_user_on_tenant.rb000066400000000000000000000015521476630434000323100ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_roles_for_user_on_tenant(tenant_id, user_id) request( :expects => [200], :method => 'GET', :path => "tenants/#{tenant_id}/users/#{user_id}/roles" ) end end class Mock def list_roles_for_user_on_tenant(tenant_id, user_id) data[:user_tenant_membership][tenant_id] ||= {} data[:user_tenant_membership][tenant_id][user_id] ||= [] roles = data[:user_tenant_membership][tenant_id][user_id].map do |role_id| data[:roles][role_id] end Excon::Response.new( :body => {'roles' => roles}, :status => 200 ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_tenants.rb000066400000000000000000000032611476630434000266660ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_tenants(options = nil, marker = nil) if options.kind_of?(Hash) params = options else Fog::Logger.deprecation('Calling OpenStack[:identity].list_tenants(limit, marker) is deprecated, use'\ ' .list_ec2_credentials(:limit => value, :marker => value)') params = {} params['limit'] = options if options params['marker'] = marker if marker end request( :expects => [200, 204], :method => 'GET', :path => "tenants", :query => params ) end end class Mock def list_tenants(_options = nil, _marker = nil) Excon::Response.new( :body => { 'tenants_links' => [], 'tenants' => [ {'id' => '1', 'description' => 'Has access to everything', 'enabled' => true, 'name' => 'admin'}, {'id' => '2', 'description' => 'Normal tenant', 'enabled' => true, 'name' => 'default'}, {'id' => '3', 'description' => 'Disabled tenant', 'enabled' => false, 'name' => 'disabled'} ] }, :status => [200, 204][rand(2)] ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_user_global_roles.rb000066400000000000000000000005571476630434000307210ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_user_global_roles(user_id) request( :expects => [200], :method => 'GET', :path => "users/#{user_id}/roles" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/list_users.rb000066400000000000000000000023011476630434000263450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def list_users(options = {}) if options.kind_of?(Hash) tenant_id = options.delete(:tenant_id) query = options else Fog::Logger.deprecation('Calling OpenStack[:identity].list_users(tenant_id) is deprecated, use .list_users(:tenant_id => value)') tenant_id = options query = {} end path = tenant_id ? "tenants/#{tenant_id}/users" : 'users' request( :expects => [200, 204], :method => 'GET', :path => path, :query => query ) end end class Mock def list_users(options = {}) tenant_id = options[:tenant_id] users = data[:users].values if tenant_id users = users.select do |user| user['tenantId'] == tenant_id end end Excon::Response.new( :body => {'users' => users}, :status => 200 ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/remove_user_from_tenant.rb000066400000000000000000000010071476630434000311020ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def remove_user_from_tenant(tenant_id, user_id, role_id) request( :expects => [200, 204], :method => 'DELETE', :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}" ) end end class Mock def remove_user_from_tenant(tenant_id, user_id, role_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/set_tenant.rb000066400000000000000000000006021476630434000263170ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end class Mock def set_tenant(_tenant) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/update_tenant.rb000066400000000000000000000013621476630434000270120ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def update_tenant(id, attributes) request( :expects => [200], :method => 'PUT', :path => "tenants/#{id}", :body => Fog::JSON.encode('tenant' => attributes) ) end end class Mock def update_tenant(_id, attributes) response = Excon::Response.new response.status = [200, 204][rand(2)] attributes = {'enabled' => true, 'id' => '1'}.merge(attributes) response.body = { 'tenant' => attributes } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/update_user.rb000066400000000000000000000015371476630434000265030ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def update_user(user_id, options = {}) url = options.delete('url') || "/users/#{user_id}" request( :body => Fog::JSON.encode('user' => options), :expects => 200, :method => 'PUT', :path => url ) end end class Mock def update_user(user_id, options) response = Excon::Response.new if user = data[:users][user_id] if options['name'] user['name'] = options['name'] end response.status = 200 response else raise Fog::OpenStack::Identity::NotFound end end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v2/requests/validate_token.rb000066400000000000000000000007571476630434000271570ustar00rootroot00000000000000module Fog module OpenStack class Identity class V2 class Real def validate_token(token_id, tenant_id = nil) request( :expects => [200, 203], :method => 'GET', :path => "tokens/#{token_id}" + (tenant_id ? "?belongsTo=#{tenant_id}" : '') ) end end class Mock def validate_token(token_id, tenant_id = nil) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3.rb000066400000000000000000000133401476630434000223040ustar00rootroot00000000000000require 'fog/openstack/identity' module Fog module OpenStack class Identity class V3 < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_endpoint_type, :openstack_region, :openstack_domain_id, :openstack_project_name, :openstack_domain_name, :openstack_user_domain, :openstack_project_domain, :openstack_user_domain_id, :openstack_project_domain_id, :openstack_api_key, :openstack_current_user_id, :openstack_userid, :openstack_username, :current_user, :current_user_id, :current_tenant, :provider, :openstack_identity_api_version, :openstack_cache_ttl, :openstack_application_credential_id, :openstack_application_credential_secret model_path 'fog/openstack/identity/v3/models' model :domain collection :domains model :endpoint collection :endpoints model :project collection :projects model :service collection :services model :token collection :tokens model :user collection :users model :group collection :groups model :role collection :roles model :role_assignment collection :role_assignments model :os_credential collection :os_credentials model :application_credential collection :application_credentials model :policy collection :policies request_path 'fog/openstack/identity/v3/requests' request :list_users request :get_user request :create_user request :update_user request :delete_user request :list_user_groups request :list_user_projects request :list_groups request :get_group request :create_group request :update_group request :delete_group request :add_user_to_group request :remove_user_from_group request :group_user_check request :list_group_users request :list_roles request :list_role_assignments request :get_role request :create_role request :update_role request :delete_role request :auth_domains request :auth_projects request :list_domains request :get_domain request :create_domain request :update_domain request :delete_domain request :list_domain_user_roles request :grant_domain_user_role request :check_domain_user_role request :revoke_domain_user_role request :list_domain_group_roles request :grant_domain_group_role request :check_domain_group_role request :revoke_domain_group_role request :list_endpoints request :get_endpoint request :create_endpoint request :update_endpoint request :delete_endpoint request :list_projects request :get_project request :create_project request :update_project request :delete_project request :list_project_user_roles request :grant_project_user_role request :check_project_user_role request :revoke_project_user_role request :list_project_group_roles request :grant_project_group_role request :check_project_group_role request :revoke_project_group_role request :list_services request :get_service request :create_service request :update_service request :delete_service request :token_authenticate request :token_validate request :token_check request :token_revoke request :list_os_credentials request :get_os_credential request :create_os_credential request :update_os_credential request :delete_os_credential request :list_application_credentials request :create_application_credentials request :delete_application_credentials request :get_application_credentials request :list_policies request :get_policy request :create_policy request :update_policy request :delete_policy class Mock include Fog::OpenStack::Core def initialize(options = {}) end end def self.get_api_version(uri, connection_options = {}) connection = Fog::Core::Connection.new(uri, false, connection_options) response = connection.request(:expects => [200], :headers => {'Content-Type' => 'application/json', 'Accept' => 'application/json'}, :method => 'GET') body = Fog::JSON.decode(response.body) version = nil unless body['version'].empty? version = body['version']['id'] end if version.nil? raise Fog::OpenStack::Errors::ServiceUnavailable, "No version available at #{uri}" end version end class Real < Fog::OpenStack::Identity::Real def api_path_prefix @path_prefix = version_in_path?(@openstack_management_uri.path) ? '' : 'v3' super end def default_path_prefix @path_prefix end def default_service_type %w[identity_v3 identityv3 identity] end def version_in_path?(url) true if url =~ /\/v3(\/)*.*$/ end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/000077500000000000000000000000001476630434000217565ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/000077500000000000000000000000001476630434000232415ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/application_credential.rb000066400000000000000000000016001476630434000302600ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class ApplicationCredential < Fog::OpenStack::Model identity :id attribute :description attribute :name attribute :roles attribute :expires_at attribute :user_id attribute :secret class << self attr_accessor :cache end @cache = {} def to_s id.to_s end def destroy requires :id service.delete_application_credentials(id, user_id) true end def create merge_attributes( service.create_application_credentials(attributes).body['application_credential'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/application_credentials.rb000066400000000000000000000020561476630434000304510ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/os_credential' module Fog module OpenStack class Identity class V3 class ApplicationCredentials < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::ApplicationCredential def all(options = {}) load_response(service.list_application_credentials(options), 'application_credentials') end def find_by_id(id, user_id) cached_credential = all(user_id).find { |application_credential| application_credential.id == id } return cached_credential if cached_credential credential_hash = service.get_application_credentials(id, user_id).body['application_credential'] Fog::OpenStack::Identity::V3::ApplicationCredential.new( credential_hash.merge(:service => service) ) end def destroy(id) credential = find_by_id(id) credential.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/domain.rb000066400000000000000000000022061476630434000250350ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Domain < Fog::OpenStack::Model identity :id attribute :description attribute :enabled attribute :name attribute :links class << self attr_accessor :cache end @cache = {} def to_s name end def destroy clear_cache requires :id service.delete_domain(id) true end def update(attr = nil) clear_cache requires :id, :name merge_attributes( service.update_domain(id, attr || attributes).body['domain'] ) self end def create clear_cache requires :name merge_attributes( service.create_domain(attributes).body['domain'] ) self end private def clear_cache self.class.cache = {} end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/domains.rb000066400000000000000000000046401476630434000252240ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/domain' module Fog module OpenStack class Identity class V3 class Domains < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Domain def all(options = {}) if service.openstack_cache_ttl > 0 cached_domain, expires = Fog::OpenStack::Identity::V3::Domain.cache[{:token => service.auth_token, :options => options}] return cached_domain if cached_domain && expires > Time.now end domain_to_cache = load_response(service.list_domains(options), 'domains') if service.openstack_cache_ttl > 0 cache = Fog::OpenStack::Identity::V3::Domain.cache cache[{:token => service.auth_token, :options => options}] = [domain_to_cache, Time.now + service.openstack_cache_ttl] Fog::OpenStack::Identity::V3::Domain.cache = cache end domain_to_cache end def create(attributes) super(attributes) end def auth_domains(options = {}) load(service.auth_domains(options).body['domains']) end def find_by_id(id) if service.openstack_cache_ttl > 0 cached_domain, expires = Fog::OpenStack::Identity::V3::Domain.cache[{:token => service.auth_token, :id => id}] return cached_domain if cached_domain && expires > Time.now end domain_hash = service.get_domain(id).body['domain'] domain_to_cache = Fog::OpenStack::Identity::V3::Domain.new( domain_hash.merge(:service => service) ) if service.openstack_cache_ttl > 0 cache = Fog::OpenStack::Identity::V3::Domain.cache cache[{:token => service.auth_token, :id => id}] = [domain_to_cache, Time.now + service.openstack_cache_ttl] Fog::OpenStack::Identity::V3::Domain.cache = cache end domain_to_cache end def destroy(id) domain = find_by_id(id) domain.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/endpoint.rb000066400000000000000000000017441476630434000254140ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Endpoint < Fog::OpenStack::Model identity :id attribute :description attribute :interface attribute :service_id attribute :name attribute :region attribute :url attribute :links def to_s name end def destroy requires :id service.delete_endpoint(id) true end def update(attr = nil) requires :id, :name merge_attributes( service.update_endpoint(id, attr || attributes).body['endpoint'] ) self end def create requires :name merge_attributes( service.create_endpoint(attributes).body['endpoint'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/endpoints.rb000066400000000000000000000014221476630434000255700ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/service' module Fog module OpenStack class Identity class V3 class Endpoints < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Endpoint def all(options = {}) load_response(service.list_endpoints(options), 'endpoints') end def find_by_id(id) cached_endpoint = find { |endpoint| endpoint.id == id } return cached_endpoint if cached_endpoint endpoint_hash = service.get_endpoint(id).body['endpoint'] Fog::OpenStack::Identity::V3::Endpoint.new( endpoint_hash.merge(:service => service) ) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/group.rb000066400000000000000000000043541476630434000247300ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Group < Fog::OpenStack::Model identity :id attribute :description attribute :domain_id attribute :name attribute :links def to_s name end def destroy requires :id service.delete_group(id) true end def update(attr = nil) requires :id, :name merge_attributes( service.update_group(id, attr || attributes).body['group'] ) self end def create requires :name merge_attributes( service.create_group(attributes).body['group'] ) self end def add_user(user_id) requires :id service.add_user_to_group(id, user_id) end def remove_user(user_id) requires :id service.remove_user_from_group(id, user_id) end def contains_user?(user_id) requires :id begin service.group_user_check(id, user_id) rescue Fog::OpenStack::Identity::NotFound return false end true end def roles requires :id, :domain_id service.list_domain_group_roles(domain_id, id).body['roles'] end def grant_role(role_id) requires :id, :domain_id service.grant_domain_group_role(domain_id, id, role_id) end def check_role(role_id) requires :id, :domain_id begin service.check_domain_group_role(domain_id, id, role_id) rescue Fog::OpenStack::Identity::NotFound return false end true end def revoke_role(role_id) requires :id, :domain_id service.revoke_domain_group_role(domain_id, id, role_id) end def users(attr = {}) requires :id service.list_group_users(id, attr).body['users'] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/groups.rb000066400000000000000000000015131476630434000251050ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/group' module Fog module OpenStack class Identity class V3 class Groups < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Group def all(options = {}) load_response(service.list_groups(options), 'groups') end def find_by_id(id) cached_group = find { |group| group.id == id } return cached_group if cached_group group_hash = service.get_group(id).body['group'] Fog::OpenStack::Identity::V3.group.new( group_hash.merge(:service => service) ) end def destroy(id) group = find_by_id(id) group.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/os_credential.rb000066400000000000000000000031261476630434000264030ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class OsCredential < Fog::OpenStack::Model identity :id attribute :project_id attribute :type attribute :blob attribute :user_id attribute :links def to_s name end def destroy requires :id service.delete_os_credential(id) @parsed_blob = nil true end def update(attr = nil) requires :id merge_attributes( service.update_os_credential(id, attr || attributes).body['credential'] ) @parsed_blob = nil self end def save requires :blob, :type @parsed_blob = nil identity ? update : create end def create merge_attributes( service.create_os_credential(attributes).body['credential'] ) @parsed_blob = nil self end def parsed_blob @parsed_blob = ::JSON.parse(blob) unless @parsed_blob @parsed_blob end def name parsed_blob['name'] if blob end def public_key parsed_blob['public_key'] if blob end def fingerprint parsed_blob['fingerprint'] if blob end def private_key parsed_blob['private_key'] if blob end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/os_credentials.rb000066400000000000000000000016561476630434000265740ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/os_credential' module Fog module OpenStack class Identity class V3 class OsCredentials < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::OsCredential def all(options = {}) load_response(service.list_os_credentials(options), 'credentials') end def find_by_id(id) cached_credential = find { |credential| credential.id == id } return cached_credential if cached_credential credential_hash = service.get_os_credential(id).body['credential'] Fog::OpenStack::Identity::V3::Credential.new( credential_hash.merge(:service => service) ) end def destroy(id) credential = find_by_id(id) credential.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/policies.rb000066400000000000000000000015401476630434000253750ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/policy' module Fog module OpenStack class Identity class V3 class Policies < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Policy def all(options = {}) load_response(service.list_policies(options), 'policies') end def find_by_id(id) cached_policy = find { |policy| policy.id == id } return cached_policy if cached_policy policy_hash = service.get_policy(id).body['policy'] Fog::OpenStack::Identity::V3::Policy.new( policy_hash.merge(:service => service) ) end def destroy(id) policy = find_by_id(id) policy.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/policy.rb000066400000000000000000000015531476630434000250710ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Policy < Fog::OpenStack::Model identity :id attribute :type attribute :blob attribute :links def to_s name end def destroy requires :id service.delete_policy(id) true end def update(attr = nil) requires :id, :blob, :type merge_attributes( service.update_policy(id, attr || attributes).body['policy'] ) self end def create requires :blob, :type merge_attributes( service.create_policy(attributes).body['policy'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/project.rb000066400000000000000000000054601476630434000252410ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Project < Fog::OpenStack::Model identity :id attribute :domain_id attribute :description attribute :enabled attribute :name attribute :links attribute :parent_id attribute :subtree attribute :parents class << self attr_accessor :cache end @cache = {} def to_s name end def destroy clear_cache requires :id service.delete_project(id) true end def update(attr = nil) clear_cache requires :id merge_attributes( service.update_project(id, attr || attributes).body['project'] ) self end def create clear_cache merge_attributes( service.create_project(attributes).body['project'] ) self end def user_roles(user_id) requires :id service.list_project_user_roles(id, user_id).body['roles'] end def grant_role_to_user(role_id, user_id) clear_cache requires :id service.grant_project_user_role(id, user_id, role_id) end def check_user_role(user_id, role_id) requires :id begin service.check_project_user_role(id, user_id, role_id) rescue Fog::OpenStack::Identity::NotFound return false end true end def revoke_role_from_user(role_id, user_id) clear_cache requires :id service.revoke_project_user_role(id, user_id, role_id) end def group_roles(group_id) requires :id service.list_project_group_roles(id, group_id).body['roles'] end def grant_role_to_group(role_id, group_id) clear_cache requires :id service.grant_project_group_role(id, group_id, role_id) end def check_group_role(group_id, role_id) requires :id begin service.check_project_group_role(id, group_id, role_id) rescue Fog::OpenStack::Identity::NotFound return false end true end def revoke_role_from_group(role_id, group_id) clear_cache requires :id service.revoke_project_group_role(id, group_id, role_id) end private def clear_cache self.class.cache = {} end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/projects.rb000066400000000000000000000062721476630434000254260ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/project' module Fog module OpenStack class Identity class V3 class Projects < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Project def all(options = {}) if service.openstack_cache_ttl > 0 cached_project, expires = Fog::OpenStack::Identity::V3::Project.cache[{:token => service.auth_token, :options => options}] return cached_project if cached_project && expires > Time.now end project_to_cache = load_response(service.list_projects(options), 'projects') if service.openstack_cache_ttl > 0 cache = Fog::OpenStack::Identity::V3::Project.cache cache[{:token => service.auth_token, :options => options}] = [project_to_cache, Time.now + service.openstack_cache_ttl] Fog::OpenStack::Identity::V3::Project.cache = cache end project_to_cache end def create(attributes) super(attributes) end def auth_projects(options = {}) load(service.auth_projects(options).body['projects']) end def find_by_id(id, options = {}) # options can include :subtree_as_ids, :subtree_as_list, :parents_as_ids, :parents_as_list if options.kind_of? Symbol # Deal with a single option being passed on its own options = {options => nil} end if service.openstack_cache_ttl > 0 cached_project, expires = Fog::OpenStack::Identity::V3::Project.cache[{:token => service.auth_token, :id => id, :options => options}] return cached_project if cached_project && expires > Time.now end project_hash = service.get_project(id, options).body['project'] top_project = project_from_hash(project_hash, service) if options.include? :subtree_as_list top_project.subtree.map! { |proj_hash| project_from_hash(proj_hash['project'], service) } end if options.include? :parents_as_list top_project.parents.map! { |proj_hash| project_from_hash(proj_hash['project'], service) } end if service.openstack_cache_ttl > 0 cache = Fog::OpenStack::Identity::V3::Project.cache cache[{:token => service.auth_token, :id => id, :options => options}] = [ top_project, Time.now + service.openstack_cache_ttl ] Fog::OpenStack::Identity::V3::Project.cache = cache end top_project end private def project_from_hash(project_hash, service) Fog::OpenStack::Identity::V3::Project.new(project_hash.merge(:service => service)) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/role.rb000066400000000000000000000014251476630434000245310ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Role < Fog::OpenStack::Model identity :id attribute :name attribute :links def to_s name end def destroy requires :id service.delete_role(id) true end def update(attr = nil) requires :id merge_attributes( service.update_role(id, attr || attributes).body['role'] ) self end def create merge_attributes( service.create_role(attributes).body['role'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/role_assignment.rb000066400000000000000000000006121476630434000267560ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class RoleAssignment < Fog::OpenStack::Model attribute :scope attribute :role attribute :user attribute :group attribute :links def to_s links['assignment'] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/role_assignments.rb000066400000000000000000000015341476630434000271450ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/role' module Fog module OpenStack class Identity class V3 class RoleAssignments < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::RoleAssignment def all(options = {}) load_response(service.list_role_assignments(options), 'role_assignments') end def filter_by(options = {}) Fog::Logger.deprecation("Calling OpenStack[:keystone].role_assignments.filter_by(options) method which"\ " is not part of standard interface and is deprecated, call "\ " .role_assignments.all(options) or .role_assignments.summary(options) instead.") all(options) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/roles.rb000066400000000000000000000025261476630434000247170ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/role' module Fog module OpenStack class Identity class V3 class Roles < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Role def all(options = {}) load_response(service.list_roles(options), 'roles') end def assignments(options = {}) # TODO(lsmola) this method doesn't make much sense, it should be moved to role.rb and automatically add # role.id filter. Otherwise it's just duplication. Fog::Logger.deprecation("Calling OpenStack[:keystone].roles.assignments(options) method which"\ " deprecated, call OpenStack[:keystone].role_assignments.all(options) instead") load(service.list_role_assignments(options).body['role_assignments']) end def find_by_id(id) cached_role = find { |role| role.id == id } return cached_role if cached_role role_hash = service.get_role(id).body['role'] Fog::OpenStack::Identity::V3.role.new( role_hash.merge(:service => service) ) end def destroy(id) role = find_by_id(id) role.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/service.rb000066400000000000000000000017061476630434000252320ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Service < Fog::OpenStack::Model identity :id attribute :description attribute :type attribute :name attribute :links def to_s name end def destroy requires :id service.delete_service(id) true end def update(attr = nil) requires :id merge_attributes( service.update_service(id, attr || attributes).body['service'] ) self end def save requires :name identity ? update : create end def create merge_attributes( service.create_service(attributes).body['service'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/services.rb000066400000000000000000000015561476630434000254200ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/service' module Fog module OpenStack class Identity class V3 class Services < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Service def all(options = {}) load_response(service.list_services(options), 'services') end def find_by_id(id) cached_service = find { |service| service.id == id } return cached_service if cached_service service_hash = service.get_service(id).body['service'] Fog::OpenStack::Identity::V3::Service.new( service_hash.merge(:service => service) ) end def destroy(id) service = find_by_id(id) service.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/token.rb000066400000000000000000000007241476630434000247110ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class Token < Fog::OpenStack::Model attribute :value attribute :catalog attribute :expires_at attribute :issued_at attribute :methods attribute :project attribute :roles attribute :user def to_s value end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/tokens.rb000066400000000000000000000022301476630434000250660ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/service' module Fog module OpenStack class Identity class V3 class Tokens < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::Token def authenticate(auth) response = service.token_authenticate(auth) token_hash = response.body['token'] Fog::OpenStack::Identity::V3::Token.new( token_hash.merge(:service => service, :value => response.headers['X-Subject-Token']) ) end def validate(subject_token) response = service.token_validate(subject_token) token_hash = response.body['token'] Fog::OpenStack::Identity::V3::Token.new( token_hash.merge(:service => service, :value => response.headers['X-Subject-Token']) ) end def check(subject_token) service.token_check(subject_token) true end def revoke(subject_token) service.token_revoke(subject_token) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/user.rb000066400000000000000000000041111476630434000245410ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Identity class V3 class User < Fog::OpenStack::Model identity :id attribute :default_project_id attribute :description attribute :domain_id attribute :email attribute :enabled attribute :name attribute :links attribute :password def to_s name end def groups requires :id service.list_user_groups(id).body['groups'] end def projects requires :id service.list_user_projects(id).body['projects'] end def application_credentials requires :id service.list_application_credentials(id).body['application_credentials'] end def roles requires :id, :domain_id service.list_domain_user_roles(domain_id, id).body['roles'] end def grant_role(role_id) requires :id, :domain_id service.grant_domain_user_role(domain_id, id, role_id) end def check_role(role_id) requires :id, :domain_id begin service.check_domain_user_role(domain_id, id, role_id) rescue Fog::OpenStack::Identity::NotFound return false end true end def revoke_role(role_id) requires :id, :domain_id service.revoke_domain_user_role(domain_id, id, role_id) end def destroy requires :id service.delete_user(id) true end def update(attr = nil) requires :id merge_attributes( service.update_user(id, attr || attributes).body['user'] ) self end def create merge_attributes( service.create_user(attributes).body['user'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/models/users.rb000066400000000000000000000017141476630434000247320ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/identity/v3/models/domain' module Fog module OpenStack class Identity class V3 class Users < Fog::OpenStack::Collection model Fog::OpenStack::Identity::V3::User def all(options = {}) load_response(service.list_users(options), 'users') end def find_by_id(id) cached_user = find { |user| user.id == id } return cached_user if cached_user user_hash = service.get_user(id).body['user'] Fog::OpenStack::Identity::V3::User.new( user_hash.merge(:service => service) ) end def find_by_name(name, options = {}) load(service.list_users(options.merge(:name => name)).body["users"]) end def destroy(id) user = find_by_id(id) user.destroy end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/000077500000000000000000000000001476630434000236315ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/add_user_to_group.rb000066400000000000000000000006011476630434000276570ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def add_user_to_group(group_id, user_id) request( :expects => [204], :method => 'PUT', :path => "groups/#{group_id}/users/#{user_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/auth_domains.rb000066400000000000000000000006541476630434000266360ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def auth_domains(options = {}) request( :expects => [200], :method => 'GET', :path => "auth/domains", :query => options ) end end class Mock def auth_domains end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/auth_projects.rb000066400000000000000000000006571476630434000270400ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def auth_projects(options = {}) request( :expects => [200], :method => 'GET', :path => "auth/projects", :query => options ) end end class Mock def auth_projects end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/check_domain_group_role.rb000066400000000000000000000006321476630434000310200ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def check_domain_group_role(id, group_id, role_id) request( :expects => [204], :method => 'HEAD', :path => "domains/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/check_domain_user_role.rb000066400000000000000000000006261476630434000306450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def check_domain_user_role(id, user_id, role_id) request( :expects => [204], :method => 'HEAD', :path => "domains/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/check_project_group_role.rb000066400000000000000000000006341476630434000312210ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def check_project_group_role(id, group_id, role_id) request( :expects => [204], :method => 'HEAD', :path => "projects/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/check_project_user_role.rb000066400000000000000000000006301476630434000310370ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def check_project_user_role(id, user_id, role_id) request( :expects => [204], :method => 'HEAD', :path => "projects/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_application_credentials.rb000066400000000000000000000013451476630434000323640ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_application_credentials(credential = {}) user_id = credential.delete('user_id') || credential.delete(:user_id) request( :expects => [201], :method => 'POST', :path => "users/#{user_id}/application_credentials", :body => Fog::JSON.encode(:application_credential => credential) ) end end class Mock def create_application_credentials(credential = {}) raise Fog::Errors::MockNotImplemented end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_domain.rb000066400000000000000000000006261476630434000267540ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_domain(domain) request( :expects => [201], :method => 'POST', :path => "domains", :body => Fog::JSON.encode(:domain => domain) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_endpoint.rb000066400000000000000000000006401476630434000273210ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_endpoint(endpoint) request( :expects => [201], :method => 'POST', :path => "endpoints", :body => Fog::JSON.encode(:endpoint => endpoint) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_group.rb000066400000000000000000000006211476630434000266340ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_group(group) request( :expects => [201], :method => 'POST', :path => "groups", :body => Fog::JSON.encode(:group => group) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_os_credential.rb000066400000000000000000000006551476630434000303220ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_os_credential(credential) request( :expects => [201], :method => 'POST', :path => "credentials", :body => Fog::JSON.encode(:credential => credential) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_policy.rb000066400000000000000000000006271476630434000270050ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_policy(policy) request( :expects => [201], :method => 'POST', :path => "policies", :body => Fog::JSON.encode(:policy => policy) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_project.rb000066400000000000000000000006331476630434000271510ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_project(project) request( :expects => [201], :method => 'POST', :path => "projects", :body => Fog::JSON.encode(:project => project) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_role.rb000066400000000000000000000006141476630434000264430ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_role(role) request( :expects => [201], :method => 'POST', :path => "roles", :body => Fog::JSON.encode(:role => role) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_service.rb000066400000000000000000000006331476630434000271430ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_service(service) request( :expects => [201], :method => 'POST', :path => "services", :body => Fog::JSON.encode(:service => service) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/create_user.rb000066400000000000000000000006141476630434000264600ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def create_user(user) request( :expects => [201], :method => 'POST', :path => "users", :body => Fog::JSON.encode(:user => user) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_application_credentials.rb000066400000000000000000000012041476630434000323550ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_application_credentials(application_credential_id, user_id) request( :expects => [204], :method => 'DELETE', :path => "users/#{user_id}/application_credentials/#{application_credential_id}", ) end end class Mock def delete_application_credentials(application_credential_id, user_id) raise Fog::Errors::MockNotImplemented end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_domain.rb000066400000000000000000000005331476630434000267500ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_domain(id) request( :expects => [204], :method => 'DELETE', :path => "domains/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_endpoint.rb000066400000000000000000000005371476630434000273250ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_endpoint(id) request( :expects => [204], :method => 'DELETE', :path => "endpoints/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_group.rb000066400000000000000000000005311476630434000266330ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_group(id) request( :expects => [204], :method => 'DELETE', :path => "groups/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_os_credential.rb000066400000000000000000000005461476630434000303200ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_os_credential(id) request( :expects => [204], :method => 'DELETE', :path => "credentials/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_policy.rb000066400000000000000000000005341476630434000270010ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_policy(id) request( :expects => [204], :method => 'DELETE', :path => "policies/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_project.rb000066400000000000000000000005351476630434000271510ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_project(id) request( :expects => [204], :method => 'DELETE', :path => "projects/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_role.rb000066400000000000000000000005271476630434000264450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_role(id) request( :expects => [204], :method => 'DELETE', :path => "roles/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_service.rb000066400000000000000000000005351476630434000271430ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_service(id) request( :expects => [204], :method => 'DELETE', :path => "services/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/delete_user.rb000066400000000000000000000005271476630434000264620ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def delete_user(id) request( :expects => [204], :method => 'DELETE', :path => "users/#{id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_application_credentials.rb000066400000000000000000000010661476630434000317000ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_application_credentials(id, user_id) request( :expects => [200], :method => 'GET', :path => "users/#{user_id}/application_credentials/#{id}", ) end end class Mock def get_application_credentials(id, user_id) raise Fog::Errors::MockNotImplemented end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_domain.rb000066400000000000000000000006001476630434000262600ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_domain(id) request( :expects => [200], :method => 'GET', :path => "domains/#{id}" ) end end class Mock def get_domain(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_endpoint.rb000066400000000000000000000006061476630434000266370ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_endpoint(id) request( :expects => [200], :method => 'GET', :path => "endpoints/#{id}" ) end end class Mock def get_endpoint(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_group.rb000066400000000000000000000005751476630434000261600ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_group(id) request( :expects => [200], :method => 'GET', :path => "groups/#{id}" ) end end class Mock def get_group(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_os_credential.rb000066400000000000000000000006221476630434000276300ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_os_credential(id) request( :expects => [200], :method => 'GET', :path => "credentials/#{id}" ) end end class Mock def get_os_credential(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_policy.rb000066400000000000000000000006011476630434000263110ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_policy(id) request( :expects => [200], :method => 'GET', :path => "policies/#{id}" ) end end class Mock def get_policy(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_project.rb000066400000000000000000000006631476630434000264700ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_project(id, options = {}) request( :expects => [200], :method => 'GET', :path => "projects/#{id}", :query => options ) end end class Mock def get_domain(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_role.rb000066400000000000000000000005721476630434000257620ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_role(id) request( :expects => [200], :method => 'GET', :path => "roles/#{id}" ) end end class Mock def get_role(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_service.rb000066400000000000000000000006031476630434000264540ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_service(id) request( :expects => [200], :method => 'GET', :path => "projects/#{id}" ) end end class Mock def get_service(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/get_user.rb000066400000000000000000000005721476630434000257770ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def get_user(id) request( :expects => [200], :method => 'GET', :path => "users/#{id}" ) end end class Mock def get_user(id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/grant_domain_group_role.rb000066400000000000000000000006311476630434000310550ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def grant_domain_group_role(id, group_id, role_id) request( :expects => [204], :method => 'PUT', :path => "domains/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/grant_domain_user_role.rb000066400000000000000000000006251476630434000307020ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def grant_domain_user_role(id, user_id, role_id) request( :expects => [204], :method => 'PUT', :path => "domains/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/grant_project_group_role.rb000066400000000000000000000006331476630434000312560ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def grant_project_group_role(id, group_id, role_id) request( :expects => [204], :method => 'PUT', :path => "projects/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/grant_project_user_role.rb000066400000000000000000000006271476630434000311030ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def grant_project_user_role(id, user_id, role_id) request( :expects => [204], :method => 'PUT', :path => "projects/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/group_user_check.rb000066400000000000000000000006011476630434000275020ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def group_user_check(group_id, user_id) request( :expects => [204], :method => 'HEAD', :path => "groups/#{group_id}/users/#{user_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_application_credentials.rb000066400000000000000000000010501476630434000320650ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_application_credentials(user_id) request( :expects => [200], :method => 'GET', :path => "users/#{user_id}/application_credentials", ) end end class Mock def list_application_credentials(user_id) raise Fog::Errors::MockNotImplemented end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_domain_group_roles.rb000066400000000000000000000007061476630434000311030ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_domain_group_roles(id, group_id) request( :expects => [200], :method => 'GET', :path => "domains/#{id}/groups/#{group_id}/roles" ) end end class Mock def list_domain_user_roles(id, group_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_domain_user_roles.rb000066400000000000000000000007011476630434000307200ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_domain_user_roles(id, user_id) request( :expects => [200], :method => 'GET', :path => "domains/#{id}/users/#{user_id}/roles" ) end end class Mock def list_domain_user_roles(id, user_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_domains.rb000066400000000000000000000006651476630434000266520ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_domains(options = {}) request( :expects => [200], :method => 'GET', :path => "domains", :query => options ) end end class Mock def list_domains(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_endpoints.rb000066400000000000000000000006731476630434000272220ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_endpoints(options = {}) request( :expects => [200], :method => 'GET', :path => "endpoints", :query => options ) end end class Mock def list_endpoints(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_group_users.rb000066400000000000000000000006761476630434000275770ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_group_users(id, options = {}) request( :expects => [200], :method => 'GET', :path => "groups/#{id}/users", :query => options ) end end class Mock def list_group_users end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_groups.rb000066400000000000000000000012261476630434000265310ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_groups(options = {}) user_id = options.delete('user_id') || options.delete(:user_id) path = if user_id "users/#{user_id}/groups" else "groups" end request( :expects => [200], :method => 'GET', :path => path, :query => options ) end end class Mock def list_groups(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_os_credentials.rb000066400000000000000000000007071476630434000302130ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_os_credentials(options = {}) request( :expects => [200], :method => 'GET', :path => "credentials", :query => options ) end end class Mock def list_os_credentials(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_policies.rb000066400000000000000000000006701476630434000270230ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_policies(options = {}) request( :expects => [200], :method => 'GET', :path => "policies", :query => options ) end end class Mock def list_policies(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_project_group_roles.rb000066400000000000000000000007111476630434000312760ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_project_group_roles(id, group_id) request( :expects => [200], :method => 'GET', :path => "projects/#{id}/groups/#{group_id}/roles" ) end end class Mock def list_project_user_roles(id, group_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_project_user_roles.rb000066400000000000000000000007041476630434000311220ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_project_user_roles(id, user_id) request( :expects => [200], :method => 'GET', :path => "projects/#{id}/users/#{user_id}/roles" ) end end class Mock def list_project_user_roles(id, user_id) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_projects.rb000066400000000000000000000012351476630434000270430ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_projects(options = {}) user_id = options.delete('user_id') || options.delete(:user_id) path = if user_id "users/#{user_id}/projects" else "projects" end request( :expects => [200], :method => 'GET', :path => path, :query => options ) end end class Mock def list_projects(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_role_assignments.rb000066400000000000000000000020731476630434000305670ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_role_assignments(options = {}) # Backwards compatibility name mapping, also serves as single pane of glass, since keystone broke # consistency in naming of options, just for this one API call name_mapping = { :group_id => 'group.id', :role_id => 'role.id', :domain_id => 'scope.domain.id', :project_id => 'scope.project.id', :user_id => 'user.id', } name_mapping.keys.each do |key| if (opt = options.delete(key)) options[name_mapping[key]] = opt end end request( :expects => [200], :method => 'GET', :path => "role_assignments", :query => options ) end end class Mock def list_role_assignments(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_roles.rb000066400000000000000000000006571476630434000263450ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_roles(options = {}) request( :expects => [200], :method => 'GET', :path => "roles", :query => options ) end end class Mock def list_roles(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_services.rb000066400000000000000000000006701476630434000270370ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_services(options = {}) request( :expects => [200], :method => 'GET', :path => "services", :query => options ) end end class Mock def list_services(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_user_groups.rb000066400000000000000000000006271476630434000275730ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_user_groups(user_id) request( :expects => [200], :method => 'GET', :path => "users/#{user_id}/groups" ) end end class Mock def list_user_groups end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_user_projects.rb000066400000000000000000000007161476630434000301040ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_user_projects(user_id, options = {}) request( :expects => [200], :method => 'GET', :path => "users/#{user_id}/projects", :query => options ) end end class Mock def list_user_projects end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/list_users.rb000066400000000000000000000006571476630434000263620ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def list_users(options = {}) request( :expects => [200], :method => 'GET', :path => "users", :query => options ) end end class Mock def list_users(options = {}) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/remove_user_from_group.rb000066400000000000000000000006111476630434000307460ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def remove_user_from_group(group_id, user_id) request( :expects => [204], :method => 'DELETE', :path => "groups/#{group_id}/users/#{user_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/revoke_domain_group_role.rb000066400000000000000000000006351476630434000312410ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def revoke_domain_group_role(id, group_id, role_id) request( :expects => [204], :method => 'DELETE', :path => "domains/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/revoke_domain_user_role.rb000066400000000000000000000006311476630434000310570ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def revoke_domain_user_role(id, user_id, role_id) request( :expects => [204], :method => 'DELETE', :path => "domains/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/revoke_project_group_role.rb000066400000000000000000000006371476630434000314420ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def revoke_project_group_role(id, group_id, role_id) request( :expects => [204], :method => 'DELETE', :path => "projects/#{id}/groups/#{group_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/revoke_project_user_role.rb000066400000000000000000000006331476630434000312600ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def revoke_project_user_role(id, user_id, role_id) request( :expects => [204], :method => 'DELETE', :path => "projects/#{id}/users/#{user_id}/roles/#{role_id}" ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/token_authenticate.rb000066400000000000000000000006201476630434000300320ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def token_authenticate(auth) request( :expects => [201], :method => 'POST', :path => "auth/tokens", :body => Fog::JSON.encode(auth) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/token_check.rb000066400000000000000000000007041476630434000264340ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def token_check(subject_token) request( :expects => [200, 204], :method => 'HEAD', :path => "auth/tokens", :headers => {"X-Subject-Token" => subject_token, "X-Auth-Token" => auth_token,} ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/token_revoke.rb000066400000000000000000000007071476630434000266550ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def token_revoke(subject_token) request( :expects => [200, 204], :method => 'DELETE', :path => "auth/tokens", :headers => {"X-Subject-Token" => subject_token, "X-Auth-Token" => auth_token,} ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/token_validate.rb000066400000000000000000000007001476630434000271440ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def token_validate(subject_token) request( :expects => [200], :method => 'GET', :path => "auth/tokens", :headers => {"X-Subject-Token" => subject_token, "X-Auth-Token" => auth_token} ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_domain.rb000066400000000000000000000006411476630434000267700ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_domain(id, domain) request( :expects => [200], :method => 'PATCH', :path => "domains/#{id}", :body => Fog::JSON.encode(:domain => domain) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_endpoint.rb000066400000000000000000000006531476630434000273440ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_endpoint(id, endpoint) request( :expects => [200], :method => 'PATCH', :path => "endpoints/#{id}", :body => Fog::JSON.encode(:endpoint => endpoint) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_group.rb000066400000000000000000000006341476630434000266570ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_group(id, group) request( :expects => [200], :method => 'PATCH', :path => "groups/#{id}", :body => Fog::JSON.encode(:group => group) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_os_credential.rb000066400000000000000000000006701476630434000303360ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_os_credential(id, credential) request( :expects => [200], :method => 'PATCH', :path => "credentials/#{id}", :body => Fog::JSON.encode(:credential => credential) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_policy.rb000066400000000000000000000006421476630434000270210ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_policy(id, policy) request( :expects => [200], :method => 'PATCH', :path => "policies/#{id}", :body => Fog::JSON.encode(:policy => policy) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_project.rb000066400000000000000000000006461476630434000271740ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_project(id, project) request( :expects => [200], :method => 'PATCH', :path => "projects/#{id}", :body => Fog::JSON.encode(:project => project) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_role.rb000066400000000000000000000006271476630434000264660ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_role(id, role) request( :expects => [200], :method => 'PATCH', :path => "roles/#{id}", :body => Fog::JSON.encode(:role => role) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_service.rb000066400000000000000000000006461476630434000271660ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_service(id, service) request( :expects => [200], :method => 'PATCH', :path => "services/#{id}", :body => Fog::JSON.encode(:service => service) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/identity/v3/requests/update_user.rb000066400000000000000000000006271476630434000265030ustar00rootroot00000000000000module Fog module OpenStack class Identity class V3 class Real def update_user(id, user) request( :expects => [200], :method => 'PATCH', :path => "users/#{id}", :body => Fog::JSON.encode(:user => user) ) end end class Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/image.rb000066400000000000000000000013161476630434000212050ustar00rootroot00000000000000 module Fog module OpenStack class Image < Fog::Service autoload :V1, 'fog/openstack/image/v1' autoload :V2, 'fog/openstack/image/v2' # Fog::OpenStack::Image.new() will return a Fog::OpenStack::Image::V2 or a Fog::OpenStack::Image::V1, # choosing the latest available def self.new(args = {}) @openstack_auth_uri = URI.parse(args[:openstack_auth_url]) if args[:openstack_auth_url] if inspect == 'Fog::OpenStack::Image' service = Fog::OpenStack::Image::V2.new(args) unless args.empty? service ||= Fog::OpenStack::Image::V1.new(args) else service = Fog::Service.new(args) end service end end end end fog-openstack-1.1.5/lib/fog/openstack/image/000077500000000000000000000000001476630434000206575ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v1.rb000066400000000000000000000074111476630434000215350ustar00rootroot00000000000000require 'fog/openstack/image' module Fog module OpenStack class Image class V1 < Fog::Service SUPPORTED_VERSIONS = /v1(\.(0|1))*/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/image/v1/models' model :image collection :images request_path 'fog/openstack/image/v1/requests' request :list_public_images request :list_public_images_detailed request :get_image request :create_image request :update_image request :get_image_members request :update_image_members request :get_shared_images request :add_member_to_image request :remove_member_from_image request :delete_image request :get_image_by_id request :set_tenant class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :images => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9292 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Image::NotFound end def default_endpoint_type 'admin' end def default_path_prefix 'v1' end def default_service_type %w[imagev1] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/000077500000000000000000000000001476630434000212055ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v1/models/000077500000000000000000000000001476630434000224705ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v1/models/image.rb000066400000000000000000000035011476630434000240760ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Image class V1 class Image < Fog::OpenStack::Model identity :id attribute :name attribute :size attribute :disk_format attribute :container_format attribute :id attribute :checksum # detailed attribute :min_disk attribute :created_at attribute :deleted_at attribute :updated_at attribute :deleted attribute :protected attribute :is_public attribute :status attribute :min_ram attribute :owner attribute :properties attribute :location attribute :copy_from def create requires :name merge_attributes(service.create_image(attributes).body['image']) self end def update requires :name merge_attributes(service.update_image(attributes).body['image']) self end def destroy requires :id service.delete_image(id) true end def add_member(member_id) requires :id service.add_member_to_image(id, member_id) end def remove_member(member_id) requires :id service.remove_member_from_image(id, member_id) end def update_members(members) requires :id service.update_image_members(id, members) end def members requires :id service.get_image_members(id).body['members'] end def metadata requires :id service.get_image(id).headers end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/models/images.rb000066400000000000000000000064561476630434000242750ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/image/v1/models/image' module Fog module OpenStack class Image class V1 class Images < Fog::OpenStack::Collection model Fog::OpenStack::Image::V1::Image def all(options = {}) load_response(service.list_public_images_detailed(options), 'images') end def summary(options = {}) load_response(service.list_public_images(options), 'images') end def details(options = {}, deprecated_query = nil) Fog::Logger.deprecation("Calling OpenStack[:glance].images.details will be removed, "\ " call .images.all for detailed list.") load_response(service.list_public_images_detailed(options, deprecated_query), 'images') end def find_by_id(id) marker = 'X-Image-Meta-' property_marker = 'X-Image-Meta-Property-' headers = service.get_image_by_id(id).headers.select { |h, _| h.start_with?(marker) } # partioning on the longer prefix, leaving X-Image-Meta # headers in the second returned hash. custom_properties, params = headers.partition do |k, _| k.start_with?(property_marker) end.map { |p| Hash[p] } params = remove_prefix_and_convert_type(params, marker) custom_properties = remove_prefix_and_convert_type(custom_properties, property_marker) params['properties'] = custom_properties new(params) rescue Fog::OpenStack::Image::NotFound nil end alias get find_by_id def public images = load(service.list_public_images_detailed.body['images']) images.delete_if { |image| image.is_public == false } end def private images = load(service.list_public_images_detailed.body['images']) images.delete_if(&:is_public) end def destroy(id) image = find_by_id(id) image.destroy end def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ load(service.list_public_images_detailed($1, arguments.first).body['images']) else super end end def find_by_size_min(size) find_attribute(__method__, size) end def find_by_size_max(size) find_attribute(__method__, size) end def find_attribute(attribute, value) attribute = attribute.to_s.gsub("find_by_", "") load(service.list_public_images_detailed(attribute, value).body['images']) end private def convert_to_type(v) case v when /^\d+$/ v.to_i when 'True' true when 'False' false when /^\d\d\d\d\-\d\d\-\d\dT/ ::Time.parse(v) else v end end def remove_prefix_and_convert_type(hash, prefix) Hash[hash.map { |k, v| [k.gsub(prefix, '').downcase, convert_to_type(v)] }] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/000077500000000000000000000000001476630434000230605ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/add_member_to_image.rb000066400000000000000000000011041476630434000273240ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def add_member_to_image(image_id, tenant_id) request( :expects => [200, 204], :method => 'PUT', :path => "images/#{image_id}/members/#{tenant_id}" ) end end class Mock def add_member_to_image(_image_id, _tenant_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/create_image.rb000066400000000000000000000061311476630434000260130ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def create_image(attributes) data = { 'Content-Type' => 'application/octet-stream', 'x-image-meta-name' => attributes[:name], 'x-image-meta-disk-format' => attributes[:disk_format], 'x-image-meta-container-format' => attributes[:container_format], 'x-image-meta-size' => attributes[:size], 'x-image-meta-is-public' => attributes[:is_public], 'x-image-meta-min-ram' => attributes[:min_ram], 'x-image-meta-min-disk' => attributes[:min_disk], 'x-image-meta-checksum' => attributes[:checksum], 'x-image-meta-owner' => attributes[:owner], 'x-glance-api-copy-from' => attributes[:copy_from] }.reject { |_k, v| v.nil? } body = '' if attributes[:location] body = File.open(attributes[:location], "rb") # Make sure the image file size is always present data['x-image-meta-size'] = File.size(body) end unless attributes[:properties].nil? attributes[:properties].each do |key, value| data["x-image-meta-property-#{key}"] = value end end request( :headers => data, :body => body, :expects => 201, :method => 'POST', :path => "images" ) ensure body.close if body.respond_to?(:close) end end class Mock def create_image(attributes) response = Excon::Response.new response.status = 201 image_id = Fog::Mock.random_hex(32) image = data[:images][image_id] = { 'name' => attributes[:name], 'size' => attributes[:size] || Fog::Mock.random_numbers(8).to_i, 'min_disk' => attributes[:min_disk] || 0, 'disk_format' => attributes[:disk_format] || 'raw', 'created_at' => Time.now.strftime('%FT%T.%6N'), 'container_format' => attributes[:container_format] || 'bare', 'deleted_at' => nil, 'updated_at' => Time.now.strftime('%FT%T.%6N'), 'checksum' => attributes[:checksum] || Fog::Mock.random_hex(32), 'id' => image_id, 'deleted' => false, 'protected' => false, 'is_public' => attributes[:is_public].to_s == 'true', 'status' => 'queued', 'min_ram' => attributes[:min_ram] || 0, 'owner' => attributes[:owner], 'properties' => attributes[:properties] || {} } response.body = {'image' => image} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/delete_image.rb000066400000000000000000000007661476630434000260220ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def delete_image(image_id) request( :expects => 200, :method => 'DELETE', :path => "images/#{image_id}" ) end end class Mock def delete_image(_image_id) response = Excon::Response.new response.status = 200 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/get_image.rb000066400000000000000000000043321476630434000253300ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def get_image(image_id) request( :expects => [200, 204], :method => 'HEAD', :path => "images/#{image_id}" ) end end class Mock def get_image(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.headers = {"X-Image-Meta-Is_public" => "True", "X-Image-Meta-Min_disk" => "0", "X-Image-Meta-Property-Ramdisk_id" => "b45aa128-cd36-4ad9-a026-1a1c2bfd8fdc", "X-Image-Meta-Disk_format" => "ami", "X-Image-Meta-Created_at" => "2012-02-21T07:32:26", "X-Image-Meta-Container_format" => "ami", "Etag" => "2f81976cae15c16ef0010c51e3a6c163", "Location" => "http://192.168.27.100:9292/v1/images/0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "X-Image-Meta-Protected" => "False", "Date" => "Fri, 24 Feb 2012 02:14:25 GMT", "X-Image-Meta-Name" => "cirros-0.3.0-x86_64-blank", "X-Image-Meta-Min_ram" => "0", "Content-Type" => "text/html; charset=UTF-8", "X-Image-Meta-Updated_at" => "2012-02-21T07:32:29", "X-Image-Meta-Property-Kernel_id" => "cd28951e-e1c2-4bc5-95d3-f0495abbcdc5", "X-Image-Meta-Size" => "25165824", "X-Image-Meta-Checksum" => "2f81976cae15c16ef0010c51e3a6c163", "X-Image-Meta-Deleted" => "False", "Content-Length" => "0", "X-Image-Meta-Owner" => "ff528b20431645ebb5fa4b0a71ca002f", "X-Image-Meta-Status" => "active", "X-Image-Meta-Id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e"} response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/get_image_by_id.rb000066400000000000000000000031451476630434000264770ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def get_image_by_id(image_id) request( :expects => [200], :method => 'HEAD', :path => "images/#{image_id}" ) end end class Mock def get_image_by_id(image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.headers = { 'X-Image-Meta-Checksum' => '8a40c862b5735975d82605c1dd395796', 'X-Image-Meta-Container_format' => 'aki', 'X-Image-Meta-Created_at' => '2016-01-06T03:22:20.000000', 'X-Image-Meta-Deleted' => 'False', 'X-Image-Meta-Disk_format' => 'aki', 'X-Image-Meta-Id' => image_id, 'X-Image-Meta-Is_public' => 'True', 'X-Image-Meta-Min_disk' => 0, 'X-Image-Meta-Min_ram' => 0, 'X-Image-Meta-Name' => 'cirros-0.3.4-x86_64-uec-kernel', 'X-Image-Meta-Owner' => '13cc6052265b41529e2fd0fc461fa8ef', 'X-Image-Meta-Protected' => 'False', 'X-Image-Meta-Size' => 4979632, 'X-Image-Meta-Status' => 'deactivated', 'X-Image-Meta-Updated_at' => '2016-02-25T03:02:05.000000', 'X-Image-Meta-Property-foo' => 'bar' } response.body = {} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/get_image_members.rb000066400000000000000000000013401476630434000270360ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def get_image_members(image_id) request( :expects => [200, 204], :method => 'GET', :path => "images/#{image_id}/members" ) end end class Mock def get_image_members(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "members" => [ {"member_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/get_shared_images.rb000066400000000000000000000013501476630434000270360ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def get_shared_images(tenant_id) request( :expects => [200, 204], :method => 'GET', :path => "shared-images/#{tenant_id}" ) end end class Mock def get_shared_images(_tenant_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "shared_images" => [ {"image_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/list_public_images.rb000066400000000000000000000017651476630434000272540ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def list_public_images(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'images', :query => options ) end end class Mock def list_public_images(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "images" => [{ "name" => Fog::Mock.random_letters(10), "size" => Fog::Mock.random_numbers(8).to_i, "disk_format" => "iso", "container_format" => "bare", "id" => Fog::Mock.random_hex(36), "checksum" => Fog::Mock.random_hex(32) }] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/list_public_images_detailed.rb000066400000000000000000000021671476630434000311040ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def list_public_images_detailed(options = {}, query_deprecated = nil) if options.kind_of?(Hash) query = options elsif options Fog::Logger.deprecation("Calling OpenStack[:glance].list_public_images_detailed(attribute, query) format"\ " is deprecated, call .list_public_images_detailed(attribute => query) instead") query = {options => query_deprecated} else query = {} end request( :expects => [200, 204], :method => 'GET', :path => 'images/detail', :query => query ) end end class Mock def list_public_images_detailed(_options = {}, _query_deprecated = nil) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = {'images' => data[:images].values} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/remove_member_from_image.rb000066400000000000000000000011211476630434000304110ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def remove_member_from_image(image_id, member_id) request( :expects => [200, 204], :method => 'DELETE', :path => "images/#{image_id}/members/#{member_id}" ) end end class Mock def remove_member_from_image(_image_id, _member_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/set_tenant.rb000066400000000000000000000005771476630434000255620ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end class Mock def set_tenant(_tenant) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/update_image.rb000066400000000000000000000051721476630434000260360ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def update_image(attributes) data = { 'x-image-meta-name' => attributes[:name], 'x-image-meta-disk-format' => attributes[:disk_format], 'x-image-meta-container-format' => attributes[:container_format], 'x-image-meta-size' => attributes[:size], 'x-image-meta-is-public' => attributes[:is_public], 'x-image-meta-min-ram' => attributes[:min_ram], 'x-image-meta-min-disk' => attributes[:min_disk], 'x-image-meta-checksum' => attributes[:checksum], 'x-image-meta-owner' => attributes[:owner] }.reject { |_k, v| v.nil? } unless attributes[:properties].nil? attributes[:properties].each do |key, value| data["x-image-meta-property-#{key}"] = value end end request( :headers => data, :expects => 200, :method => 'PUT', :path => "images/#{attributes[:id]}" ) end end class Mock def update_image(attributes) response = Excon::Response.new response.status = 200 image = images.last response.body = { 'image' => { 'name' => attributes[:name] || image.name, 'size' => image.size, 'min_disk' => (attributes[:min_disk] || image.min_disk).to_i, 'disk_format' => attributes[:disk_format] || image.disk_format, 'created_at' => image.created_at, 'container_format' => attributes[:container_format] || image.container_format, 'deleted_at' => nil, 'updated_at' => Time.now.to_s, 'checksum' => image.checksum, 'id' => attributes[:id], 'deleted' => false, 'protected' => false, 'is_public' => attributes[:is_public] || image.is_public, 'status' => image.status, 'min_ram' => (attributes[:min_ram] || image.min_ram).to_i, 'owner' => attributes[:owner] || image.owner, 'properties' => attributes[:properties] || image.properties } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v1/requests/update_image_members.rb000066400000000000000000000021201476630434000275360ustar00rootroot00000000000000module Fog module OpenStack class Image class V1 class Real def update_image_members(image_id, members) # Sample members # [ # {'member_id' => 'tenant1', 'can_share' => true }, # {'member_id' => 'tenant2', 'can_share' => false } # ] data = {'memberships' => members} request( :body => Fog::JSON.encode(data), :expects => [204], :method => 'PUT', :path => "images/#{image_id}/members" ) end end class Mock def update_image_members(_image_id, _members) response = Excon::Response.new response.status = 204 response.body = { 'members' => [ {'member_id' => 'ff528b20431645ebb5fa4b0a71ca002f', 'can_share' => false}, {'member_id' => 'ff528b20431645ebb5fa4b0a71ca002f', 'can_share' => true} ] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2.rb000066400000000000000000000100331476630434000215300ustar00rootroot00000000000000require 'fog/openstack/image' module Fog module OpenStack class Image class V2 < Fog::Service SUPPORTED_VERSIONS = /v2(\.(0|1|2|3))*/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/image/v2/models' model :image collection :images request_path 'fog/openstack/image/v2/requests' request :list_images request :get_image request :create_image request :update_image request :upload_image request :download_image request :reactivate_image request :deactivate_image request :add_tag_to_image request :remove_tag_from_image request :get_image_members request :get_member_details request :update_image_member request :get_shared_images request :add_member_to_image request :remove_member_from_image request :delete_image request :get_image_by_id request :set_tenant class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :images => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9292 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Upload # Exists for image_v2_upload_spec "describe" end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Image::NotFound end def default_endpoint_type 'admin' end def default_path_prefix 'v2' end def default_service_type %w[image imagev2] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/000077500000000000000000000000001476630434000212065ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v2/models/000077500000000000000000000000001476630434000224715ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v2/models/image.rb000066400000000000000000000143301476630434000241010ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Image class V2 class Image < Fog::OpenStack::Model identity :id attribute :name attribute :visibility # public or private attribute :tags attribute :self attribute :size attribute :virtual_size attribute :disk_format attribute :container_format attribute :id attribute :checksum attribute :self attribute :file # detailed attribute :min_disk attribute :created_at attribute :updated_at attribute :protected attribute :status # "queued","saving","active","killed","deleted","pending_delete" attribute :min_ram attribute :owner attribute :properties attribute :metadata attribute :location # from snapshot support attribute :network_allocated attribute :base_image_ref attribute :image_type attribute :instance_uuid attribute :user_id def method_missing(method_sym, *arguments, &block) if attributes.key?(method_sym) attributes[method_sym] elsif attributes.key?(method_sym.to_s) attributes[method_sym.to_s] elsif method_sym.to_s.end_with?('=') attributes[method_sym.to_s.gsub(/=$/, '').to_sym] = arguments[0] else super end end def respond_to?(method_sym, include_all = false) if attributes.key?(method_sym) true elsif attributes.key?(method_sym.to_s) true elsif method_sym.to_s.end_with?('=') true else super end end def create requires :name merge_attributes(service.create_image(attributes).body) self end # Here we convert 'attributes' into a form suitable for Glance's usage of JSON Patch (RFC6902). # We fetch the existing attributes from the server to compute the delta (difference) # Setting value to nil will delete that attribute from the server. def update(attr = nil) requires :id client_attributes = attr || @attributes server_attributes = service.images.get(id).attributes json_patch = build_update_json_patch(client_attributes, server_attributes) merge_attributes( service.update_image(id, json_patch).body ) self end # This overrides the behaviour of Fog::OpenStack::Model::save() which tries to be clever and # assumes save=update if an ID is present - but Image V2 allows ID to be specified on creation def save if @attributes[:self].nil? create else update end end def destroy requires :id service.delete_image(id) true end def upload_data(io_obj) requires :id if io_obj.kind_of? Hash service.upload_image(id, nil, io_obj) else service.upload_image(id, io_obj) end end def download_data(params = {}) requires :id service.download_image(id, params[:content_range], params) end def reactivate requires :id service.reactivate_image(id) end def deactivate requires :id service.deactivate_image(id) end def add_member(member_id) requires :id service.add_member_to_image(id, member_id) end def remove_member(member_id) requires :id service.remove_member_from_image(id, member_id) end def update_member(member) requires :id service.update_image_member(id, member) end def members requires :id service.get_image_members(id).body['members'] end def member(member_id) requires :id service.get_member_details(id, member_id) end def add_tags(tags) requires :id tags.each { |tag| add_tag tag } end def add_tag(tag) requires :id service.add_tag_to_image(id, tag) end def remove_tags(tags) requires :id tags.each { |tag| remove_tag tag } end def remove_tag(tag) requires :id service.remove_tag_from_image(id, tag) end private def build_update_json_patch(client_attributes, server_attributes) [ build_patch_operation('remove', patch_attributes_to_remove(client_attributes, server_attributes)), build_patch_operation('add', patch_attributes_to_add(client_attributes, server_attributes)), build_patch_operation('replace', patch_attributes_to_replace(client_attributes, server_attributes)), ].flatten end def patch_attributes_to_remove(client_attributes, server_attributes) client_attributes.select do |key, value| value.nil? && !server_attributes[key].nil? end end def patch_attributes_to_add(client_attributes, server_attributes) client_attributes.reject do |key, _| server_attributes.key?(key) || client_attributes[key].nil? end end def patch_attributes_to_replace(client_attributes, server_attributes) client_attributes.reject do |key, value| value.nil? || server_attributes[key] == value end end def build_patch_operation(op_name, attributes) json_patch = [] attributes.each do |key, value| json_patch << {:op => op_name, :path => "/#{key}", :value => value} end json_patch end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/models/images.rb000066400000000000000000000033621476630434000242670ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/image/v2/models/image' module Fog module OpenStack class Image class V2 class Images < Fog::OpenStack::Collection model Fog::OpenStack::Image::V2::Image def all(options = {}) load_response(service.list_images(options), 'images') end def summary(options = {}) load_response(service.list_images(options), 'images') end def find_by_id(id) new(service.get_image_by_id(id).body) rescue Fog::OpenStack::Image::NotFound nil end alias get find_by_id def public images = load(service.list_images.body['images']) images.delete_if { |image| image.is_public == false } end def private images = load(service.list_images.body['images']) images.delete_if(&:is_public) end def destroy(id) image = find_by_id(id) image.destroy end def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ load(service.list_images($1.to_sym => arguments.first).body['images']) else super end end def find_by_size_min(size) find_attribute(__method__, size) end def find_by_size_max(size) find_attribute(__method__, size) end def find_attribute(attribute, value) attribute = attribute.to_s.gsub("find_by_", "") load(service.list_images(attribute.to_sym => value).body['images']) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/000077500000000000000000000000001476630434000230615ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/add_member_to_image.rb000066400000000000000000000011451476630434000273320ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def add_member_to_image(image_id, tenant_id) request( :expects => [200], :method => 'POST', :path => "images/#{image_id}/members", :body => Fog::JSON.encode(:member => tenant_id) ) end end class Mock def add_member_to_image(_image_id, _tenant_id) response = Excon::Response.new response.status = 200 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/add_tag_to_image.rb000066400000000000000000000010241476630434000266320ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def add_tag_to_image(image_id, tag) request( :expects => [204], :method => 'PUT', :path => "images/#{image_id}/tags/#{tag}" ) end end class Mock def add_tag_to_image(_image_id, _tag) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/create_image.rb000066400000000000000000000033201476630434000260110ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def create_image(image) location = image.delete :location headers = {} headers["Location"] = location if location request( :headers => headers, :expects => [201], :method => 'POST', :path => "images", :body => Fog::JSON.encode(image) ) end end class Mock def create_image(attributes) response = Excon::Response.new response.status = 201 image_id = Fog::Mock.random_hex(32) image = data[:images][image_id] = { 'tags' => attributes[:tags] || [], 'name' => attributes[:name], 'size' => nil, 'min_disk' => attributes[:min_disk] || 0, 'disk_format' => attributes[:disk_format] || 'raw', 'created_at' => Time.now.strftime('%FT%T.%6N'), 'container_format' => attributes[:container_format] || 'bare', 'deleted_at' => nil, 'updated_at' => Time.now.strftime('%FT%T.%6N'), 'checksum' => nil, 'id' => image_id, 'visibility' => attributes[:visibility] || 'public', 'status' => 'queued', 'min_ram' => attributes[:min_ram] || 0, 'owner' => attributes[:owner] || Fog::Mock.random_hex(32) } response.body = image response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/deactivate_image.rb000066400000000000000000000010171476630434000266600ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def deactivate_image(image_id) request( :expects => 204, :method => 'POST', :path => "images/#{image_id}/actions/deactivate" ) end end class Mock def deactivate_image(_image_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/delete_image.rb000066400000000000000000000007661476630434000260230ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end end class Mock def delete_image(_image_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/download_image.rb000066400000000000000000000015021476630434000263550ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def download_image(image_id, _content_range = nil, params) # TODO: implement content range handling request_hash = { :expects => [200, 204], :method => 'GET', :raw_body => true, :path => "images/#{image_id}/file", } request_hash[:response_block] = params[:response_block] if params[:response_block] request(request_hash).body end end class Mock def download_image(_image_id, _content_range = nil) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/get_image.rb000066400000000000000000000043321476630434000253310ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def get_image(image_id) request( :expects => [200, 204], :method => 'HEAD', :path => "images/#{image_id}" ) end end class Mock def get_image(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.headers = {"X-Image-Meta-Is_public" => "True", "X-Image-Meta-Min_disk" => "0", "X-Image-Meta-Property-Ramdisk_id" => "b45aa128-cd36-4ad9-a026-1a1c2bfd8fdc", "X-Image-Meta-Disk_format" => "ami", "X-Image-Meta-Created_at" => "2012-02-21T07:32:26", "X-Image-Meta-Container_format" => "ami", "Etag" => "2f81976cae15c16ef0010c51e3a6c163", "Location" => "http://192.168.27.100:9292/v1/images/0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "X-Image-Meta-Protected" => "False", "Date" => "Fri, 24 Feb 2012 02:14:25 GMT", "X-Image-Meta-Name" => "cirros-0.3.0-x86_64-blank", "X-Image-Meta-Min_ram" => "0", "Content-Type" => "text/html; charset=UTF-8", "X-Image-Meta-Updated_at" => "2012-02-21T07:32:29", "X-Image-Meta-Property-Kernel_id" => "cd28951e-e1c2-4bc5-95d3-f0495abbcdc5", "X-Image-Meta-Size" => "25165824", "X-Image-Meta-Checksum" => "2f81976cae15c16ef0010c51e3a6c163", "X-Image-Meta-Deleted" => "False", "Content-Length" => "0", "X-Image-Meta-Owner" => "ff528b20431645ebb5fa4b0a71ca002f", "X-Image-Meta-Status" => "active", "X-Image-Meta-Id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e"} response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/get_image_by_id.rb000066400000000000000000000016721476630434000265030ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def get_image_by_id(image_id) request( :expects => [200], :method => 'GET', :path => "images/#{image_id}" ) end end class Mock def get_image_by_id(_image_id) response = Excon::Response.new response.status = [200][rand(2)] response.body = { "images" => [{ "name" => "mock-image-name", "size" => 25165824, "disk_format" => "ami", "container_format" => "ami", "id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "checksum" => "2f81976cae15c16ef0010c51e3a6c163" }] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/get_image_members.rb000066400000000000000000000013401476630434000270370ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def get_image_members(image_id) request( :expects => [200, 204], :method => 'GET', :path => "images/#{image_id}/members" ) end end class Mock def get_image_members(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "members" => [ {"member_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/get_member_details.rb000066400000000000000000000016501476630434000272230ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def get_member_details(image_id, member_id) request( :expects => [200], :method => 'GET', :path => "images/#{image_id}/members/#{member_id}" ).body end end class Mock def get_member_details(_image_id, _member_id) response = Excon::Response.new response.status = 200 response.body = { :status => "pending", :created_at => "2013-11-26T07:21:21Z", :updated_at => "2013-11-26T07:21:21Z", :image_id => "0ae74cc5-5147-4239-9ce2-b0c580f7067e", :member_id => "8989447062e04a818baf9e073fd04fa7", :schema => "/v2/schemas/member" } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/get_shared_images.rb000066400000000000000000000013501476630434000270370ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def get_shared_images(tenant_id) request( :expects => [200, 204], :method => 'GET', :path => "shared-images/#{tenant_id}" ) end end class Mock def get_shared_images(_tenant_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "shared_images" => [ {"image_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/list_images.rb000066400000000000000000000017421476630434000257120ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def list_images(options = {}) request( :expects => [200], :method => 'GET', :path => 'images', :query => options ) end end class Mock def list_images(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "images" => [{ "name" => Fog::Mock.random_letters(10), "size" => Fog::Mock.random_numbers(8).to_i, "disk_format" => "iso", "container_format" => "bare", "id" => Fog::Mock.random_hex(36), "checksum" => Fog::Mock.random_hex(32) }] } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/reactivate_image.rb000066400000000000000000000010171476630434000266760ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def reactivate_image(image_id) request( :expects => 204, :method => 'POST', :path => "images/#{image_id}/actions/reactivate" ) end end class Mock def reactivate_image(_image_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/remove_member_from_image.rb000066400000000000000000000011211476630434000304120ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def remove_member_from_image(image_id, member_id) request( :expects => [200, 204], :method => 'DELETE', :path => "images/#{image_id}/members/#{member_id}" ) end end class Mock def remove_member_from_image(_image_id, _member_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/remove_tag_from_image.rb000066400000000000000000000010411476630434000277170ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def remove_tag_from_image(image_id, tag) request( :expects => [204], :method => 'DELETE', :path => "images/#{image_id}/tags/#{tag}" ) end end class Mock def remove_tag_from_image(_image_id, _tag) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/set_tenant.rb000066400000000000000000000005771476630434000255630ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end class Mock def set_tenant(_tenant) true end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/update_image.rb000066400000000000000000000035331476630434000260360ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def update_image(id, json_patch) request( :headers => {'Content-Type' => 'application/openstack-images-v2.1-json-patch'}, :expects => [200], :method => 'PATCH', :path => "images/#{id}", :body => Fog::JSON.encode(json_patch) ) end end class Mock def update_image(attributes) response = Excon::Response.new response.status = 200 image = images.last response.body = { 'image' => { 'name' => attributes[:name] || image.name, 'size' => image.size, 'min_disk' => (attributes[:min_disk] || image.min_disk).to_i, 'disk_format' => attributes[:disk_format] || image.disk_format, 'created_at' => image.created_at, 'container_format' => attributes[:container_format] || image.container_format, 'deleted_at' => nil, 'updated_at' => Time.now.to_s, 'checksum' => image.checksum, 'id' => attributes[:id], 'deleted' => false, 'protected' => false, 'is_public' => attributes[:is_public] || image.is_public, 'status' => image.status, 'min_ram' => (attributes[:min_ram] || image.min_ram).to_i, 'owner' => attributes[:owner] || image.owner, 'properties' => attributes[:properties] || image.properties } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/update_image_member.rb000066400000000000000000000020071476630434000273600ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def update_image_member(image_id, member) request( # 'status' is the only property we can update :body => Fog::JSON.encode(member.select { |key, _value| key == 'status' }), :expects => [200], :method => 'PUT', :path => "images/#{image_id}/members/#{member['member_id']}" ) end end class Mock def update_image_members(image_id, member) response = Excon::Response.new response.status = 204 response.body = { :status => "accepted", :created_at => "2013-11-26T07:21:21Z", :updated_at => "2013-11-26T07:21:21Z", :image_id => image_id, :member_id => member['member_id'], :schema => "/v2/schemas/member" } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/image/v2/requests/upload_image.rb000066400000000000000000000015051476630434000260350ustar00rootroot00000000000000module Fog module OpenStack class Image class V2 class Real def upload_image(image_id, body, params = {}) request_hash = { :headers => {'Content-Type' => 'application/octet-stream'}, :expects => 204, :method => 'PUT', :path => "images/#{image_id}/file" } request_hash[:request_block] = params[:request_block] if params[:request_block] request_hash[:body] = body if body request(request_hash).body ensure body.close if body.respond_to?(:close) end end class Mock def upload_image(_image_id, _body) response = Excon::Response.new response.status = 204 end end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection.rb000066400000000000000000000047011476630434000230240ustar00rootroot00000000000000require 'yaml' module Fog module OpenStack class Introspection < Fog::Service SUPPORTED_VERSIONS = /v1/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version ## REQUESTS # request_path 'fog/openstack/introspection/requests' # Introspection requests request :create_introspection request :get_introspection request :abort_introspection request :get_introspection_details # Rules requests request :create_rules request :list_rules request :delete_rules_all request :get_rules request :delete_rules ## MODELS # model_path 'fog/openstack/introspection/models' model :rules collection :rules_collection class Mock def self.data @data ||= Hash.new do |hash, key| # Introspection data is *huge* we load it from a yaml file file = "test/fixtures/introspection.yaml" hash[key] = YAML.load(File.read(file)) end end def self.reset @data = nil end include Fog::OpenStack::Core def initialize(options = {}) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86_400).iso8601 end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Introspection::NotFound end def default_path_prefix 'v1' end def default_service_type %w[baremetal-introspection] end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/000077500000000000000000000000001476630434000224755ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/introspection/models/000077500000000000000000000000001476630434000237605ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/introspection/models/rules.rb000066400000000000000000000011521476630434000254360ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Introspection class Rules < Fog::OpenStack::Model identity :uuid attribute :description attribute :actions attribute :conditions attribute :links def create requires :actions, :conditions attributes[:description] = description || "" merge_attributes(service.create_rules(attributes).body) self end def destroy requires :uuid service.delete_rules(uuid) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/models/rules_collection.rb000066400000000000000000000013121476630434000276470ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/introspection/models/rules' module Fog module OpenStack class Introspection class RulesCollection < Fog::OpenStack::Collection model Fog::OpenStack::Introspection::Rules def all(_options = {}) load_response(service.list_rules, 'rules') end def get(uuid) data = service.get_rules(uuid).body new(data) rescue Fog::OpenStack::Introspection::NotFound nil end def destroy(uuid) rules = get(uuid) rules.destroy end def destroy_all service.delete_rules_all end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/000077500000000000000000000000001476630434000243505ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/abort_introspection.rb000066400000000000000000000010241476630434000307610ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def abort_introspection(node_id) request( :body => "", :expects => 202, :method => "POST", :path => "introspection/#{node_id}/abort" ) end end class Mock def abort_introspection(_node_id) response = Excon::Response.new response.status = 202 response.body = "" response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/create_introspection.rb000066400000000000000000000015101476630434000311150ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def create_introspection(node_id, options = {}) if options data = { 'new_ipmi_username' => options[:new_ipmi_username], 'new_ipmi_password' => options[:new_ipmi_password] } body = Fog::JSON.encode(data) else body = "" end request( :body => body, :expects => 202, :method => "POST", :path => "introspection/#{node_id}" ) end end class Mock def create_introspection(_node_id, _options = {}) response = Excon::Response.new response.status = 202 response.body = "" response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/create_rules.rb000066400000000000000000000015051476630434000273530ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def create_rules(attributes) attributes_valid = [ :actions, :conditions, :uuid, :description ] # Filter only allowed creation attributes data = attributes.select do |key, _| attributes_valid.include?(key.to_sym) end request( :body => Fog::JSON.encode(data), :expects => 200, :method => "POST", :path => "rules" ) end end class Mock def create_rules(_) response = Excon::Response.new response.status = 200 response.body = {"rules" => data[:rules].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/delete_rules.rb000066400000000000000000000007011476630434000273470ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def delete_rules(rule_id) request( :expects => 204, :method => "DELETE", :path => "rules/#{rule_id}" ) end end class Mock def delete_rules(_rule_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/delete_rules_all.rb000066400000000000000000000006531476630434000302050ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def delete_rules_all request( :expects => 204, :method => "DELETE", :path => "rules" ) end end class Mock def delete_rules_all response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/get_introspection.rb000066400000000000000000000010241476630434000304310ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def get_introspection(node_id) request( :expects => 200, :method => "GET", :path => "introspection/#{node_id}" ) end end class Mock def get_introspection(_node_id) response = Excon::Response.new response.status = 200 response.body = {"error" => "null", "finished" => "true"} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/get_introspection_details.rb000066400000000000000000000010451476630434000321410ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def get_introspection_details(node_id) request( :expects => 200, :method => 'GET', :path => "introspection/#{node_id}/data" ) end end class Mock def get_introspection_details(_node_id) response = Excon::Response.new response.status = 200 response.body = {"data" => data[:introspection_data]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/get_rules.rb000066400000000000000000000007621476630434000266730ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def get_rules(rule_id) request( :expects => 200, :method => 'GET', :path => "rules/#{rule_id}" ) end end class Mock def get_rules(_rule_id) response = Excon::Response.new response.status = 200 response.body = {"rules" => data[:rules].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/introspection/requests/list_rules.rb000066400000000000000000000007261476630434000270670ustar00rootroot00000000000000module Fog module OpenStack class Introspection class Real def list_rules request( :expects => 200, :method => 'GET', :path => "rules" ) end end class Mock def list_rules response = Excon::Response.new response.status = 200 response.body = {"rules" => data[:rules].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager.rb000066400000000000000000000070031476630434000224040ustar00rootroot00000000000000module Fog module OpenStack class KeyManager < Fog::Service SUPPORTED_VERSIONS = /v1(\.0)*/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_userid, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_auth_omit_default_port, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_temp_url_key, :openstack_cache_ttl ## MODELS # model_path 'fog/openstack/key_manager/models' model :secret collection :secrets model :container collection :containers model :acl ## REQUESTS # secrets request_path 'fog/openstack/key_manager/requests' request :create_secret request :list_secrets request :get_secret request :get_secret_payload request :get_secret_metadata request :delete_secret # containers request :create_container request :get_container request :list_containers request :delete_container #ACL request :get_secret_acl request :update_secret_acl request :replace_secret_acl request :delete_secret_acl request :get_container_acl request :update_container_acl request :replace_container_acl request :delete_container_acl class Mock def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9311 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::KeyManager::NotFound end def default_path_prefix 'v1' end def default_service_type %w[key-manager] end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/000077500000000000000000000000001476630434000220575ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/000077500000000000000000000000001476630434000233425ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/acl.rb000066400000000000000000000006601476630434000244300ustar00rootroot00000000000000 require 'fog/openstack/models/model' module Fog module OpenStack class KeyManager class ACL < Fog::OpenStack::Model identity :acl_ref attribute :uuid attribute :operation_type attribute :users, type: Array attribute :project_access attribute :secret_type attribute :created attribute :creator_id attribute :updated end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/container.rb000066400000000000000000000014531476630434000256540ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'uri' module Fog module OpenStack class KeyManager class Container < Fog::OpenStack::Model identity :container_ref attribute :uuid attribute :name attribute :type attribute :status attribute :creator_id attribute :secret_refs attribute :consumers attribute :created attribute :updated def uuid URI(self.container_ref).path.split('/').last rescue nil end def create merge_attributes(service.create_container(attributes).body) self end def destroy requires :container_ref service.delete_container(uuid) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/containers.rb000066400000000000000000000011261476630434000260340ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/key_manager/models/container' module Fog module OpenStack class KeyManager class Containers < Fog::OpenStack::Collection model Fog::OpenStack::KeyManager::Container def all(options = {}) load_response(service.list_containers(options), 'containers') end def get(secret_ref) if secret = service.get_container(secret_ref).body new(secret) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/secret.rb000066400000000000000000000020421476630434000251520ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'uri' module Fog module OpenStack class KeyManager class Secret < Fog::OpenStack::Model identity :secret_ref # create attribute :uuid attribute :name attribute :expiration attribute :bit_length, type: Integer attribute :algorithm attribute :mode attribute :secret_type attribute :content_types attribute :created attribute :creator_id attribute :status attribute :updated attribute :payload attribute :payload_content_type attribute :payload_content_encoding attribute :metadata def uuid URI(self.secret_ref).path.split('/').last rescue nil end def create merge_attributes(service.create_secret(attributes).body) self end def destroy requires :secret_ref service.delete_secret(uuid) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/models/secrets.rb000066400000000000000000000011041476630434000253330ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/key_manager/models/secret' module Fog module OpenStack class KeyManager class Secrets < Fog::OpenStack::Collection model Fog::OpenStack::KeyManager::Secret def all(options = {}) load_response(service.list_secrets(options), 'secrets') end def get(secret_ref) if secret = service.get_secret(secret_ref).body new(secret) end rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/000077500000000000000000000000001476630434000237325ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/create_container.rb000066400000000000000000000005441476630434000275670ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def create_container(options) request( :body => Fog::JSON.encode(options), :expects => [201], :method => 'POST', :path => 'containers' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/create_secret.rb000066400000000000000000000005361476630434000270730ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def create_secret(options) request( :body => Fog::JSON.encode(options), :expects => [201], :method => 'POST', :path => 'secrets' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/delete_container.rb000066400000000000000000000004641476630434000275670ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def delete_container(id) request( :expects => [204], :method => 'DELETE', :path => "containers/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/delete_container_acl.rb000066400000000000000000000007611476630434000304060ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def delete_container_acl(uuid) request( :expects => [200], :method => 'DELETE', :path => "containers/#{uuid}/acl" ) end end class Mock def delete_container_acl(_uuid) response = Excon::Response.new response.status = 200 response.body = "null" response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/delete_secret.rb000066400000000000000000000004561476630434000270730ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def delete_secret(id) request( :expects => [204], :method => 'DELETE', :path => "secrets/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/delete_secret_acl.rb000066400000000000000000000007501476630434000277070ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def delete_secret_acl(uuid) request( :expects => [200], :method => 'DELETE', :path => "secrets/#{uuid}/acl" ) end end class Mock def delete_secret_acl(_uuid) response = Excon::Response.new response.status = 200 response.body = "null" response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_container.rb000066400000000000000000000004631476630434000271030ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_container(uuid) request( :expects => [200], :method => 'GET', :path => "containers/#{uuid}", ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_container_acl.rb000066400000000000000000000013661476630434000277250ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_container_acl(uuid) request( :expects => [200], :method => 'GET', :path => "containers/#{uuid}/acl" ) end end class Mock def get_container_acl(_uuid) response = Excon::Response.new response.status = 200 response.body = { "read" => { "project-access" => true, "updated" => "2017-04-25T19:10:52", "users" => ["45895d3a393f42b2a8760f5dafa9c6d8"], "created" => "2017-04-25T19:10:52" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_secret.rb000066400000000000000000000004551476630434000264070ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_secret(uuid) request( :expects => [200], :method => 'GET', :path => "secrets/#{uuid}", ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_secret_acl.rb000066400000000000000000000014171476630434000272250ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_secret_acl(uuid) request( :expects => [200], :method => 'GET', :path => "secrets/#{uuid}/acl" ) end end class Mock def get_secret_acl(_uuid) response = Excon::Response.new response.status = 200 response.body = { "read" => { "project-access" => false, "updated" => "2017-04-25T19:10:52", "users" => %w(45895d3a393f42b2a8760f5dafa9c6d8 dc2cb4f0d30044e2b0251409c94cc955), "created" => "2017-04-25T19:10:52" } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_secret_metadata.rb000066400000000000000000000004771476630434000302530ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_secret_metadata(uuid) request( :expects => [200], :method => 'GET', :path => "secrets/#{uuid}/metadata", ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/get_secret_payload.rb000066400000000000000000000006051476630434000301150ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def get_secret_payload(uuid) request( :expects => [200], :method => 'GET', :path => "secrets/#{uuid}/payload", :headers => { 'Accept' => '*/*' } ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/list_containers.rb000066400000000000000000000005251476630434000274610ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def list_containers(options = {}) request( :expects => [200], :method => 'GET', :path => 'containers', :query => options ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/list_secrets.rb000066400000000000000000000005171476630434000267650ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def list_secrets(options = {}) request( :expects => [200], :method => 'GET', :path => 'secrets', :query => options ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/replace_container_acl.rb000066400000000000000000000012461476630434000305560ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def replace_container_acl(uuid, options) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'PUT', :path => "containers/#{uuid}/acl" ) end end class Mock def replace_container_acl(_uuid, _options) response = Excon::Response.new response.status = 200 response.body = { "acl_ref" => "https://10.0.2.15:9311/v1/containers/4ab86cb0-a736-48df-ae97-b10d3e5bc60a/acl" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/replace_secret_acl.rb000066400000000000000000000012321476630434000300540ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def replace_secret_acl(uuid, options) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'PUT', :path => "secrets/#{uuid}/acl" ) end end class Mock def replace_secret_acl(_uuid, _options) response = Excon::Response.new response.status = 200 response.body = { "acl_ref" => "https://10.0.2.15:9311/v1/secrets/17ca49d9-0804-4ba7-b931-d34cabaa1f04/acl" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/update_container_acl.rb000066400000000000000000000012451476630434000304240ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def update_container_acl(uuid, options) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'PATCH', :path => "containers/#{uuid}/acl" ) end end class Mock def update_container_acl(_uuid, _options) response = Excon::Response.new response.status = 200 response.body = { "acl_ref" => "https://10.0.2.15:9311/v1/containers/4ab86cb0-a736-48df-ae97-b10d3e5bc60a/acl" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/key_manager/requests/update_secret_acl.rb000066400000000000000000000012311476630434000277220ustar00rootroot00000000000000module Fog module OpenStack class KeyManager class Real def update_secret_acl(uuid, options) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'PATCH', :path => "secrets/#{uuid}/acl" ) end end class Mock def update_secret_acl(_uuid, _options) response = Excon::Response.new response.status = 200 response.body = { "acl_ref" => "https://10.0.2.15:9311/v1/secrets/17ca49d9-0804-4ba7-b931-d34cabaa1f04/acl" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering.rb000066400000000000000000000067161476630434000217460ustar00rootroot00000000000000 module Fog module OpenStack class Metering < Fog::Service SUPPORTED_VERSIONS = /v2/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/metering/models' model :resource collection :resources # Events extracted from Ceilometer (metering service) to Panko (event service) since Ocata release model :event collection :events request_path 'fog/openstack/metering/requests' # Metering request :get_event request :get_resource request :get_samples request :get_statistics request :list_events request :list_meters request :list_resources class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8776 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Metering::NotFound end def default_endpoint_type 'admin' end def default_path_prefix 'v2' end def default_service_type %w[metering] end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/000077500000000000000000000000001476630434000214075ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metering/models/000077500000000000000000000000001476630434000226725ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metering/models/event.rb000066400000000000000000000004471476630434000243450ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Metering class Event < Fog::OpenStack::Model identity :message_id attribute :event_type attribute :generated attribute :raw attribute :traits end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/models/events.rb000066400000000000000000000010231476630434000245170ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/metering/models/event' module Fog module OpenStack class Metering class Events < Fog::OpenStack::Collection model Fog::OpenStack::Metering::Event def all(q = []) load_response(service.list_events(q)) end def find_by_id(message_id) event = service.get_event(message_id).body new(event) rescue Fog::OpenStack::Metering::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/models/meter.rb000066400000000000000000000000001476630434000243210ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metering/models/meters.rb000066400000000000000000000000001476630434000245040ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metering/models/resource.rb000066400000000000000000000004241476630434000250460ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Metering class Resource < Fog::OpenStack::Model identity :resource_id attribute :project_id attribute :user_id attribute :metadata end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/models/resources.rb000066400000000000000000000010611476630434000252270ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/metering/models/resource' module Fog module OpenStack class Metering class Resources < Fog::OpenStack::Collection model Fog::OpenStack::Metering::Resource def all(_detailed = true) load_response(service.list_resources) end def find_by_id(resource_id) resource = service.get_resource(resource_id).body new(resource) rescue Fog::OpenStack::Metering::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/000077500000000000000000000000001476630434000232625ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metering/requests/get_event.rb000066400000000000000000000011341476630434000255660ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def get_event(message_id) request( :expects => 200, :method => 'GET', :path => "events/#{message_id}" ) end end class Mock def get_event(_message_id) response = Excon::Response.new response.status = 200 response.body = { 'event_type' => 'compute.instance.create', 'message_id' => 'd646b40dea6347dfb8caee2da1484c56', } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/get_resource.rb000066400000000000000000000012721476630434000262770ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def get_resource(resource_id) request( :expects => 200, :method => 'GET', :path => "resources/#{resource_id}" ) end end class Mock def get_resource(_resource_id) response = Excon::Response.new response.status = 200 response.body = { 'resource_id' => 'glance', 'project_id' => 'd646b40dea6347dfb8caee2da1484c56', 'user_id' => '1d5fd9eda19142289a60ed9330b5d284', 'metadata' => {} } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/get_samples.rb000066400000000000000000000027101476630434000261120ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def get_samples(meter_id, options = [], limit = 10000000) data = { 'q' => [] } options.each do |opt| filter = {} ['field', 'op', 'value'].each do |key| filter[key] = opt[key] if opt[key] end data['q'] << filter unless filter.empty? data['limit'] = limit end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'GET', :path => "meters/#{meter_id}" ) end end class Mock def get_samples(_meter_id) response = Excon::Response.new response.status = 200 response.body = [{ 'counter_name' => 'image.size', 'user_id' => '1d5fd9eda19142289a60ed9330b5d284', 'resource_id' => 'glance', 'timestamp' => '2013-04-03T23:44:21', 'resource_metadata' => {}, 'source' => 'artificial', 'counter_unit' => 'bytes', 'counter_volume' => 10.0, 'project_id' => 'd646b40dea6347dfb8caee2da1484c56', 'message_id' => '14e4a902-9cf3-11e2-a054-003048f5eafc', 'counter_type' => 'gauge' }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/get_statistics.rb000066400000000000000000000026451476630434000266470ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def get_statistics(meter_id, options = {}) data = { 'period' => options['period'], 'q' => [] } options['q'].each do |opt| filter = {} ['field', 'op', 'value'].each do |key| filter[key] = opt[key] if opt[key] end data['q'] << filter unless filter.empty? end if options['q'].kind_of? Array request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'GET', :path => "meters/#{meter_id}/statistics" ) end end class Mock def get_statistics(_meter_id, _options = {}) response = Excon::Response.new response.status = 200 response.body = [{ 'count' => 143, 'duration_start' => '2013-04-03T23:44:21', 'min' => 10.0, 'max' => 10.0, 'duration_end' => '2013-04-04T23:24:21', 'period' => 0, 'period_end' => '2013-04-04T23:24:21', 'duration' => 85200.0, 'period_start' => '2013-04-03T23:44:21', 'avg' => 10.0, 'sum' => 1430.0 }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/list_events.rb000066400000000000000000000016601476630434000261510ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def list_events(options = []) data = { 'q' => [] } options.each do |opt| filter = {} ['field', 'op', 'value'].each do |key| filter[key] = opt[key] if opt[key] end data['q'] << filter unless filter.empty? end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'GET', :path => 'events' ) end end class Mock def list_events(_options = {}) response = Excon::Response.new response.status = 200 response.body = [{ 'event_type' => 'compute.instance.create', 'message_id' => 'd646b40dea6347dfb8caee2da1484c56', }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/list_meters.rb000066400000000000000000000021301476630434000261350ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def list_meters(options = []) data = { 'q' => [] } options.each do |opt| filter = {} ['field', 'op', 'value'].each do |key| filter[key] = opt[key] if opt[key] end data['q'] << filter unless filter.empty? end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'GET', :path => 'meters' ) end end class Mock def list_meters(_options = {}) response = Excon::Response.new response.status = 200 response.body = [{ 'user_id' => '1d5fd9eda19142289a60ed9330b5d284', 'name' => 'image.size', 'resource_id' => 'glance', 'project_id' => 'd646b40dea6347dfb8caee2da1484c56', 'type' => 'gauge', 'unit' => 'bytes' }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metering/requests/list_resources.rb000066400000000000000000000012641476630434000266570ustar00rootroot00000000000000module Fog module OpenStack class Metering class Real def list_resources(_options = {}) request( :expects => 200, :method => 'GET', :path => 'resources' ) end end class Mock def list_resources(_options = {}) response = Excon::Response.new response.status = 200 response.body = [{ 'resource_id' => 'glance', 'project_id' => 'd646b40dea6347dfb8caee2da1484c56', 'user_id' => '1d5fd9eda19142289a60ed9330b5d284', 'metadata' => {} }] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric.rb000066400000000000000000000064051476630434000214120ustar00rootroot00000000000000module Fog module OpenStack class Metric < Fog::Service SUPPORTED_VERSIONS = /v1/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/metric/models' model :metric collection :metrics model :resource collection :resources request_path 'fog/openstack/metric/requests' request :get_resource_metric_measures request :get_metric_measures request :get_metric request :list_metrics request :get_resource request :list_resources class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8041 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def default_path_prefix 'v1' end def self.not_found_class Fog::OpenStack::Metric::NotFound end def default_service_type %w[metric] end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/000077500000000000000000000000001476630434000210605ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metric/models/000077500000000000000000000000001476630434000223435ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metric/models/metric.rb000066400000000000000000000005561476630434000241610ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Metric class Metric < Fog::OpenStack::Model identity :id attribute :name attribute :resource_id attribute :unit attribute :created_by_project_id attribute :created_by_user_id attribute :definition end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/models/metrics.rb000066400000000000000000000014071476630434000243400ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/metric/models/metric' module Fog module OpenStack class Metric class Metrics < Fog::OpenStack::Collection model Fog::OpenStack::Metric::Metric def all(options = {}) load_response(service.list_metrics(options)) end def find_by_id(metric_id) resource = service.get_metric(metric_id).body new(resource) rescue Fog::OpenStack::Metric::NotFound nil end def find_measures_by_id(metric_id, options = {}) resource = service.get_metric_measures(metric_id, options).body new(resource) rescue Fog::OpenStack::Metric::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/models/resource.rb000066400000000000000000000004601476630434000245170ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Metric class Resource < Fog::OpenStack::Model identity :id attribute :original_resource_id attribute :project_id attribute :user_id attribute :metrics end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/models/resources.rb000066400000000000000000000010571476630434000247050ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/metric/models/resource' module Fog module OpenStack class Metric class Resources < Fog::OpenStack::Collection model Fog::OpenStack::Metric::Resource def all(options = {}) load_response(service.list_resources(options)) end def find_by_id(resource_id) resource = service.get_resource(resource_id).body new(resource) rescue Fog::OpenStack::Metric::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/000077500000000000000000000000001476630434000227335ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/metric/requests/get_metric.rb000066400000000000000000000036371476630434000254130ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def get_metric(metric_id) request( :expects => 200, :method => 'GET', :path => "metric/#{metric_id}" ) end end class Mock def get_metric(_metric_id) response = Excon::Response.new response.status = 200 response.body = { "archive_policy" => { "aggregation_methods" => [ "95pct", "median", "max", "count", "std", "sum", "min", "mean" ], "back_window" => 0, "definition" => [ { "granularity" => "0:00:01", "points" => 3600, "timespan" => "1:00:00" }, { "granularity" => "0:01:00", "points" => 10080, "timespan" => "7 days, 0:00:00" }, { "granularity" => "1:00:00", "points" => 8760, "timespan" => "365 days, 0:00:00" } ], "name" => "high" }, "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "id" => "8bbb5f02-b654-4861-b19e-d372fcdca124", "name" => nil, "resource" => nil, "unit" => nil } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/get_metric_measures.rb000066400000000000000000000016741476630434000273160ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def get_metric_measures(metric_id, options = {}) request( :expects => 200, :method => 'GET', :path => "metric/#{metric_id}/measures", :query => options, ) end end class Mock def get_metric_measures(_metric_id, _options = {}) response = Excon::Response.new response.status = 200 response.body = [ { "timestamp" => "2014-10-06T14:33:57", "value" => 43.1 }, { "timestamp" => "2014-10-06T14:34:12", "value" => 12 }, { "timestamp" => "2014-10-06T14:34:20", "value" => 2 } ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/get_resource.rb000066400000000000000000000024621476630434000257520ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def get_resource(resource_id) request( :expects => 200, :method => 'GET', :path => "resource/generic/#{resource_id}" ) end end class Mock def get_resource(_resource_id) response = Excon::Response.new response.status = 200 response.body = { "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "ended_at" => nil, "id" => "75c44741-cc60-4033-804e-2d3098c7d2e9", "metrics" => {}, "original_resource_id" => "75C44741-CC60-4033-804E-2D3098C7D2E9", "project_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D", "revision_end" => nil, "revision_start" => "2016-11-08T11:23:45.989977+00:00", "started_at" => "2016-11-08T11:23:45.989960+00:00", "type" => "generic", "user_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/get_resource_metric_measures.rb000066400000000000000000000022201476630434000312110ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def get_resource_metric_measures(resource_id, metric_name, options = {}) request( :expects => 200, :method => 'GET', :path => "resource/generic/#{resource_id}/metric/#{metric_name}/measures", :query => options ) end end class Mock def get_resource_metric_measures(_resource_id, _metric_name, _options = {}) response = Excon::Response.new response.status = 200 response.body = [ [ "2014-10-06T14:00:00+00:00", 3600.0, 24.7 ], [ "2014-10-06T14:34:00+00:00", 60.0, 15.5 ], [ "2014-10-06T14:34:12+00:00", 1.0, 6.0 ], [ "2014-10-06T14:34:20+00:00", 1.0, 25.0 ] ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/list_metrics.rb000066400000000000000000000074511476630434000257700ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def list_metrics(options = {}) request( :expects => 200, :method => 'GET', :path => 'metric', :query => options ) end end class Mock def list_metrics(_options = {}) response = Excon::Response.new response.status = 200 response.body = [ { "archive_policy" => { "aggregation_methods" => [ "95pct", "median", "max", "count", "std", "sum", "min", "mean" ], "back_window" => 0, "definition" => [ { "granularity" => "0:00:01", "points" => 3600, "timespan" => "1:00:00" }, { "granularity" => "0:01:00", "points" => 10080, "timespan" => "7 days, 0:00:00" }, { "granularity" => "1:00:00", "points" => 8760, "timespan" => "365 days, 0:00:00" } ], "name" => "high" }, "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "id" => "8bbb5f02-b654-4861-b19e-d372fcdca124", "name" => nil, "resource_id" => nil, "unit" => nil }, { "archive_policy" => { "aggregation_methods" => [ "95pct", "median", "max", "count", "std", "sum", "min", "mean" ], "back_window" => 0, "definition" => [ { "granularity" => "0:05:00", "points" => 12, "timespan" => "1:00:00" }, { "granularity" => "1:00:00", "points" => 24, "timespan" => "1 day, 0:00:00" }, { "granularity" => "1 day, 0:00:00", "points" => 30, "timespan" => "30 days, 0:00:00" } ], "name" => "low" }, "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "id" => "af3446dc-e20f-4ecf-aaaa-1240c05ff19b", "name" => nil, "resource_id" => nil, "unit" => nil } ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/metric/requests/list_resources.rb000066400000000000000000000065161476630434000263350ustar00rootroot00000000000000module Fog module OpenStack class Metric class Real def list_resources(type = "generic", options = {}) request( :expects => 200, :method => 'GET', :path => "resource/#{Fog::OpenStack.escape(type)}", :query => options ) end end class Mock def list_resources(_type = "generic", _options = {}) response = Excon::Response.new response.status = 200 response.body = [ { "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "ended_at" => nil, "id" => "75c44741-cc60-4033-804e-2d3098c7d2e9", "metrics" => {}, "original_resource_id" => "75C44741-CC60-4033-804E-2D3098C7D2E9", "project_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D", "revision_end" => nil, "revision_start" => "2016-11-08T11:23:45.989977+00:00", "started_at" => "2016-11-08T11:23:45.989960+00:00", "type" => "generic", "user_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D" }, { "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "ended_at" => nil, "id" => "ab68da77-fa82-4e67-aba9-270c5a98cbcb", "metrics" => { "temperature" => "ed51c966-8890-4f4e-96c4-f0a753dbad42" }, "original_resource_id" => "AB68DA77-FA82-4E67-ABA9-270C5A98CBCB", "project_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D", "revision_end" => nil, "revision_start" => "2016-11-08T11:23:46.177259+00:00", "started_at" => "2016-11-08T11:23:46.177236+00:00", "type" => "generic", "user_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D" }, { "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5", "created_by_user_id" => "d040def9-fd68-45f0-a19f-253014f397c3", "ended_at" => "2014-01-04T10:00:12+00:00", "id" => "6868da77-fa82-4e67-aba9-270c5ae8cbca", "metrics" => {}, "original_resource_id" => "6868DA77-FA82-4E67-ABA9-270C5AE8CBCA", "project_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D", "revision_end" => nil, "revision_start" => "2016-11-08T11:23:46.781604+00:00", "started_at" => "2014-01-02T23:23:34+00:00", "type" => "instance", "user_id" => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D" } ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/models/000077500000000000000000000000001476630434000210605ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/models/collection.rb000066400000000000000000000033151476630434000235420ustar00rootroot00000000000000require 'fog/core/collection' module Fog module OpenStack class Collection < Fog::Collection # It's important to store the whole response, it contains e.g. important info about whether there is another # page of data. attr_accessor :response def load_response(response, index = nil) # Delete it index if it's there, so we don't store response with data twice, but we store only metadata objects = index ? response.body.delete(index) : response.body clear && objects.each { |object| self << new(object) } self.response = response self end ################################################################################################################## # Abstract base class methods, please keep the consistent naming in all subclasses of the Collection class # Returns detailed list of records def all(options = {}) raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :all is not implemented') end # Returns non detailed list of records, usually just subset of attributes, which makes this call more effective. # Not all openstack services support non detailed list, so it delegates to :all by default. def summary(options = {}) all(options) end # Gets record given record's UUID def get(uuid) raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :get is not implemented') end def find_by_id(uuid) get(uuid) end # Destroys record given record's UUID def destroy(uuid) raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :destroy is not implemented') end end end end fog-openstack-1.1.5/lib/fog/openstack/models/meta_parent.rb000066400000000000000000000012631476630434000237060ustar00rootroot00000000000000module Fog module OpenStack class Compute module MetaParent def parent @parent end def parent=(new_parent) @parent = new_parent end def collection_name if @parent.class == Fog::OpenStack::Compute::Image return "images" elsif @parent.class == Fog::OpenStack::Compute::Server return "servers" else raise "Metadata is not supported for this model type." end end def metas_to_hash(metas) hash = {} metas.each { |meta| hash.store(meta.key, meta.value) } hash end end end end end fog-openstack-1.1.5/lib/fog/openstack/models/model.rb000066400000000000000000000031101476630434000225000ustar00rootroot00000000000000require 'fog/core/model' module Fog module OpenStack class Model < Fog::Model # In some cases it's handy to be able to store the project for the record, e.g. swift doesn't contain project info # in the result, so we can track it in this attribute based on what project was used in the request attr_accessor :project ################################################################################################################## # Abstract base class methods, please keep the consistent naming in all subclasses of the Model class # Initialize a record def initialize(attributes) # Old 'connection' is renamed as service and should be used instead prepare_service_value(attributes) super end # Saves a record, call create or update based on identity, which marks if object was already created def save identity ? update : create end # Updates a record def update # uncomment when exception is defined in another PR # raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :get is not implemented') end # Creates a record def create # uncomment when exception is defined in another PR # raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :get is not implemented') end # Destroys a record def destroy # uncomment when exception is defined in another PR # raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :get is not implemented') end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring.rb000066400000000000000000000054271476630434000223170ustar00rootroot00000000000000 module Fog module OpenStack class Monitoring < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_userid, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_auth_omit_default_port, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_temp_url_key, :openstack_cache_ttl model_path 'fog/openstack/monitoring/models' model :metric collection :metrics model :measurement collection :measurements model :statistic collection :statistics model :notification_method collection :notification_methods model :alarm_definition collection :alarm_definitions model :alarm collection :alarms model :alarm_state collection :alarm_states model :alarm_count collection :alarm_counts model :dimension_value request_path 'fog/openstack/monitoring/requests' request :create_metric request :create_metric_array request :list_metrics request :list_metric_names request :find_measurements request :list_statistics request :create_notification_method request :get_notification_method request :list_notification_methods request :put_notification_method request :patch_notification_method request :delete_notification_method request :create_alarm_definition request :list_alarm_definitions request :patch_alarm_definition request :update_alarm_definition request :get_alarm_definition request :delete_alarm_definition request :list_alarms request :get_alarm request :patch_alarm request :update_alarm request :delete_alarm request :get_alarm_counts request :list_alarm_state_history_for_specific_alarm request :list_alarm_state_history_for_all_alarms request :list_dimension_values request :list_notification_method_types class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Monitoring::NotFound end def default_service_type %w[monitoring] end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/000077500000000000000000000000001476630434000217625ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/000077500000000000000000000000001476630434000232455ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm.rb000066400000000000000000000017331476630434000246720ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class Alarm < Fog::OpenStack::Model identity :id attribute :links attribute :link attribute :alarm_definition attribute :metrics attribute :state attribute :lifecycle_state attribute :state_updated_timestamp attribute :updated_timestamp attribute :created_timestamp def update(attr = nil) requires :id merge_attributes( service.update_alarm(id, attr || attributes).body ) self end def patch(attr = nil) requires :id merge_attributes( service.patch_alarm(id, attr || attributes).body ) self end def destroy requires :id service.delete_alarm(id) true end def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_count.rb000066400000000000000000000004371476630434000261020ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class AlarmCount < Fog::OpenStack::Model attribute :links attribute :columns attribute :counts def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_counts.rb000066400000000000000000000006001476630434000262550ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/alarm_count' module Fog module OpenStack class Monitoring class AlarmCounts < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::AlarmCount def get(options = {}) load_response(service.get_alarm_counts(options)) end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_definition.rb000066400000000000000000000024231476630434000270770ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class AlarmDefinition < Fog::OpenStack::Model identity :id attribute :links attribute :name attribute :description attribute :expression attribute :deterministic attribute :expression_data attribute :match_by attribute :severity attribute :actions_enabled attribute :alarm_actions attribute :ok_actions attribute :undetermined_actions def create requires :name, :expression merge_attributes( service.create_alarm_definition(attributes).body ) self end def update(attr = nil) requires :name, :expression merge_attributes( service.update_alarm_definition(id, attr || attributes).body ) end def patch(attr = nil) requires :id merge_attributes( service.patch_alarm_definition(id, attr || attributes).body ) self end def destroy requires :id service.delete_alarm_definition(id) true end def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_definitions.rb000066400000000000000000000022001476630434000272530ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/alarm_definition' module Fog module OpenStack class Monitoring class AlarmDefinitions < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::AlarmDefinition def create(attributes) super(attributes) end def update(attributes) super(attributes) end def patch(attributes) super(attributes) end def all(options = {}) load_response(service.list_alarm_definitions(options), 'elements') end def find_by_id(id) cached_alarm_definition = detect { |alarm_definition| alarm_definition.id == id } return cached_alarm_definition if cached_alarm_definition alarm_definition_hash = service.get_alarm_definition(id).body Fog::OpenStack::Monitoring::AlarmDefinition.new( alarm_definition_hash.merge(:service => service) ) end def destroy(id) alarm_definition = find_by_id(id) alarm_definition.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_state.rb000066400000000000000000000012171476630434000260670ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class AlarmState < Fog::OpenStack::Model identity :id attribute :alarm_id attribute :metrics attribute :old_state attribute :new_state attribute :reason attribute :reason_data attribute :timestamp attribute :sub_alarms def patch(options) requires :id merge_attributes( service.list_alarm_state_history_for_specific_alarm(id, options) ) self end def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarm_states.rb000066400000000000000000000011151476630434000262470ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/alarm_state' module Fog module OpenStack class Monitoring class AlarmStates < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::AlarmState def all(options = {}) load_response(service.list_alarm_state_history_for_all_alarms(options), 'elements') end def list_alarm_state_history(id, options = {}) load_response(service.list_alarm_state_history_for_specific_alarm(id, options), 'elements') end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/alarms.rb000066400000000000000000000014071476630434000250530ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/alarm' module Fog module OpenStack class Monitoring class Alarms < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::Alarm def all(options = {}) load_response(service.list_alarms(options), 'elements') end def find_by_id(id) cached_alarm = detect { |alarm| alarm.id == id } return cached_alarm if cached_alarm alarm_hash = service.get_alarm(id).body Fog::OpenStack::Monitoring::Alarm.new( alarm_hash.merge(:service => service) ) end def destroy(id) alarm = find_by_id(id) alarm.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/dimension_value.rb000066400000000000000000000005061476630434000267540ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class DimensionValue < Fog::OpenStack::Model identity :id attribute :metric_name attribute :dimension_name attribute :values def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/dimension_values.rb000066400000000000000000000006751476630434000271460ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/dimension_value' module Fog module OpenStack class Monitoring class DimensionValues < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::DimensionValue def all(dimension_name, options = {}) load_response(service.list_dimension_values(dimension_name, options), 'elements') end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/measurement.rb000066400000000000000000000005311476630434000261160ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class Measurement < Fog::OpenStack::Model identity :id attribute :name attribute :dimensions attribute :columns attribute :measurements def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/measurements.rb000066400000000000000000000006201476630434000263000ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/measurement' module Fog module OpenStack class Monitoring class Measurements < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::Measurement def find(options = {}) load_response(service.find_measurements(options), 'elements') end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/metric.rb000066400000000000000000000010041476630434000250500ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class Metric < Fog::OpenStack::Model identity :id attribute :name attribute :dimensions attribute :timestamp attribute :value attribute :value_meta def to_s name end def create requires :name, :timestamp, :value service.create_metric(attributes).body['metric'] self end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/metrics.rb000066400000000000000000000020201476630434000252320ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/metric' require 'fog/openstack/monitoring/models/dimension_values' module Fog module OpenStack class Monitoring class Metrics < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::Metric def all(options = {}) load_response(service.list_metrics(options), 'elements') end def list_metric_names(options = {}) load_response(service.list_metric_names(options), 'elements') end def create(attributes) super(attributes) end def create_metric_array(metrics_list = []) service.create_metric_array(metrics_list) end def list_dimension_values(dimension_name, options = {}) dimension_value = Fog::OpenStack::Monitoring::DimensionValues.new dimension_value.load_response( service.list_dimension_values(dimension_name, options), 'elements' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/notification_method.rb000066400000000000000000000017741476630434000276310ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class NotificationMethod < Fog::OpenStack::Model identity :id attribute :name attribute :links attribute :type attribute :address attribute :period def create requires :name, :type, :address merge_attributes( service.create_notification_method(attributes).body ) end def update(attr = nil) requires :name, :type, :address merge_attributes( service.put_notification_method(id, attr || attributes).body ) end def patch(attr = nil) merge_attributes( service.patch_notification_method(id, attr || attributes).body ) end def destroy requires :id service.delete_notification_method(id) true end def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/notification_methods.rb000066400000000000000000000023501476630434000300030ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/notification_method' module Fog module OpenStack class Monitoring class NotificationMethods < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::NotificationMethod def all(options = {}) load_response(service.list_notification_methods(options), 'elements') end def create(attributes) super(attributes) end def patch(attributes) super(attributes) end def find_by_id(id) cached_notification_method = detect { |notification_method| notification_method.id == id } return cached_notification_method if cached_notification_method notification_method_hash = service.get_notification_method(id).body Fog::OpenStack::Monitoring::NotificationMethod.new( notification_method_hash.merge(:service => service) ) end def list_types service.list_notification_method_types.body['elements'].map { |x| x['type'].to_sym } end def destroy(id) notification_method = find_by_id(id) notification_method.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/statistic.rb000066400000000000000000000005241476630434000256020ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Monitoring class Statistic < Fog::OpenStack::Model identity :id attribute :name attribute :dimension attribute :columns attribute :statistics def to_s name end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/models/statistics.rb000066400000000000000000000006071476630434000257670ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/monitoring/models/statistic' module Fog module OpenStack class Monitoring class Statistics < Fog::OpenStack::Collection model Fog::OpenStack::Monitoring::Statistic def all(options = {}) load_response(service.list_statistics(options), 'elements') end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/000077500000000000000000000000001476630434000236355ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/create_alarm_definition.rb000066400000000000000000000005671476630434000310210ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def create_alarm_definition(options) request( :body => Fog::JSON.encode(options), :expects => [201, 204], :method => 'POST', :path => 'alarm-definitions' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/create_metric.rb000066400000000000000000000012201476630434000267630ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def create_metric(options) data = options # data = { # 'name' => name, # 'dimensions' => dimensions, # 'timestamp' => timestamp, # 'value' => value, # 'value_meta' => value_meta # } # _create_metric(data) request( :body => Fog::JSON.encode(data), :expects => [204], :method => 'POST', :path => 'metrics' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/create_metric_array.rb000066400000000000000000000005561476630434000301740ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def create_metric_array(metrics_list) request( :body => Fog::JSON.encode(metrics_list), :expects => [204], :method => 'POST', :path => 'metrics' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/create_notification_method.rb000066400000000000000000000005751476630434000315420ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def create_notification_method(options) request( :body => Fog::JSON.encode(options), :expects => [201, 204], :method => 'POST', :path => 'notification-methods' ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/delete_alarm.rb000066400000000000000000000004541476630434000266030ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def delete_alarm(id) request( :expects => [204], :method => 'DELETE', :path => "alarms/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/delete_alarm_definition.rb000066400000000000000000000005021476630434000310050ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def delete_alarm_definition(id) request( :expects => [204], :method => 'DELETE', :path => "alarm-definitions/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/delete_notification_method.rb000066400000000000000000000005101476630434000315260ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def delete_notification_method(id) request( :expects => [204], :method => 'DELETE', :path => "notification-methods/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/find_measurements.rb000066400000000000000000000006471476630434000277010ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def find_measurements(options = {}) request( :expects => [200], :method => 'GET', :path => "metrics/measurements", :query => options ) end end class Mock # def list_measurements(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/get_alarm.rb000066400000000000000000000005441476630434000261200ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def get_alarm(id) request( :expects => [200], :method => 'GET', :path => "alarms/#{id}" ) end end class Mock # def get_alarm(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/get_alarm_counts.rb000066400000000000000000000006351476630434000275140ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def get_alarm_counts(options = {}) request( :expects => [200], :method => 'GET', :path => "alarms/count", :query => options ) end end class Mock # def get_alarm_counts(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/get_alarm_definition.rb000066400000000000000000000004741476630434000303320ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def get_alarm_definition(id) request( :expects => [200], :method => 'GET', :path => "alarm-definitions/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/get_notification_method.rb000066400000000000000000000005021476630434000310440ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def get_notification_method(id) request( :expects => [200], :method => 'GET', :path => "notification-methods/#{id}" ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_alarm_definitions.rb000066400000000000000000000006441476630434000307100ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_alarm_definitions(options = {}) request( :expects => [200], :method => 'GET', :path => "alarm-definitions", :query => options ) end end class Mock # def list_metrics(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_alarm_state_history_for_all_alarms.rb000066400000000000000000000007041476630434000343300ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_alarm_state_history_for_all_alarms(options = {}) request( :expects => [200], :method => 'GET', :path => "alarms/state-history", :query => options ) end end class Mock # def list_alarm_state_history(options = {}) # # end end end end end list_alarm_state_history_for_specific_alarm.rb000066400000000000000000000007221476630434000351030ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/monitoring/requestsmodule Fog module OpenStack class Monitoring class Real def list_alarm_state_history_for_specific_alarm(id, options = {}) request( :expects => [200], :method => 'GET', :path => "alarms/#{id}/state-history", :query => options ) end end class Mock # def list_alarm_state_history(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_alarms.rb000066400000000000000000000006151476630434000264760ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_alarms(options = {}) request( :expects => [200], :method => 'GET', :path => "alarms", :query => options ) end end class Mock # def list_alarms(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_dimension_values.rb000066400000000000000000000007711476630434000305660ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_dimension_values(dimension_name, options = {}) request( :expects => [200], :method => 'GET', :path => "metrics/dimensions/names/values", :query => options.merge(:dimension_name => dimension_name) ) end end class Mock # def list_dimension_values(dimension_name, options = {}) # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_metric_names.rb000066400000000000000000000006331476630434000276650ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_metric_names(options = {}) request( :expects => [200], :method => 'GET', :path => "metrics/names", :query => options ) end end class Mock # def list_metrics(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_metrics.rb000066400000000000000000000006201476630434000266610ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_metrics(options = {}) request( :expects => [200], :method => 'GET', :path => "metrics", :query => options ) end end class Mock # def list_metrics(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_notification_method_types.rb000066400000000000000000000006121476630434000324660ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_notification_method_types request( :expects => [200], :method => 'GET', :path => "notification-methods/types" ) end end class Mock # def list_notification_method_types # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_notification_methods.rb000066400000000000000000000006521476630434000314310ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_notification_methods(options = {}) request( :expects => [200], :method => 'GET', :path => "notification-methods", :query => options ) end end class Mock # def list_metrics(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/list_statistics.rb000066400000000000000000000006411476630434000274100ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def list_statistics(options = {}) request( :expects => [200], :method => 'GET', :path => "metrics/statistics", :query => options ) end end class Mock # def list_statistics(options = {}) # # end end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/patch_alarm.rb000066400000000000000000000005461476630434000264420ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def patch_alarm(id, options) request( :expects => [200], :method => 'PATCH', :path => "alarms/#{id}", :body => Fog::JSON.encode(options) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/patch_alarm_definition.rb000066400000000000000000000006161476630434000306500ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def patch_alarm_definition(id, alarm_definition) request( :expects => [200], :method => 'PATCH', :path => "alarm-definitions/#{id}", :body => Fog::JSON.encode(alarm_definition) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/patch_notification_method.rb000066400000000000000000000006151476630434000313710ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def update_notification_method(id, notification) request( :expects => [200], :method => 'PATCH', :path => "notification-methods/#{id}", :body => Fog::JSON.encode(notification) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/put_notification_method.rb000066400000000000000000000006101476630434000310750ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def put_notification_method(id, notification) request( :expects => [200], :method => 'PUT', :path => "notification-methods/#{id}", :body => Fog::JSON.encode(notification) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/update_alarm.rb000066400000000000000000000005451476630434000266240ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def update_alarm(id, options) request( :expects => [200], :method => 'PUT', :path => "alarms/#{id}", :body => Fog::JSON.encode(options) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/monitoring/requests/update_alarm_definition.rb000066400000000000000000000006151476630434000310320ustar00rootroot00000000000000module Fog module OpenStack class Monitoring class Real def update_alarm_definition(id, alarm_definition) request( :expects => [200], :method => 'PUT', :path => "alarm-definitions/#{id}", :body => Fog::JSON.encode(alarm_definition) ) end end class Mock end end end end fog-openstack-1.1.5/lib/fog/openstack/network.rb000066400000000000000000000363161476630434000216240ustar00rootroot00000000000000 module Fog module OpenStack class Network < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_application_credential_id, :openstack_application_credential_secret ## MODELS # model_path 'fog/openstack/network/models' model :extension collection :extensions model :network collection :networks model :port collection :ports model :subnet collection :subnets model :subnet_pool collection :subnet_pools model :floating_ip collection :floating_ips model :router collection :routers model :lb_pool collection :lb_pools model :lb_member collection :lb_members model :lb_health_monitor collection :lb_health_monitors model :lb_vip collection :lb_vips model :vpn_service collection :vpn_services model :ike_policy collection :ike_policies model :ipsec_policy collection :ipsec_policies model :ipsec_site_connection collection :ipsec_site_connections model :rbac_policy collection :rbac_policies model :security_group collection :security_groups model :security_group_rule collection :security_group_rules model :network_ip_availability collection :network_ip_availabilities ## REQUESTS # request_path 'fog/openstack/network/requests' # Neutron Extensions request :list_extensions request :get_extension # IP Availability request :get_network_ip_availability request :list_network_ip_availabilities # Network CRUD request :list_networks request :create_network request :delete_network request :get_network request :update_network # Port CRUD request :list_ports request :create_port request :delete_port request :get_port request :update_port # Subnet CRUD request :list_subnets request :create_subnet request :delete_subnet request :get_subnet request :update_subnet # Subnet Pools CRUD request :list_subnet_pools request :create_subnet_pool request :delete_subnet_pool request :get_subnet_pool request :update_subnet_pool # FloatingIp CRUD request :list_floating_ips request :create_floating_ip request :delete_floating_ip request :get_floating_ip request :associate_floating_ip request :disassociate_floating_ip # Router CRUD request :list_routers request :create_router request :delete_router request :get_router request :update_router request :add_router_interface request :remove_router_interface # # LBaaS V1 # # LBaaS Pool CRUD request :list_lb_pools request :create_lb_pool request :delete_lb_pool request :get_lb_pool request :get_lb_pool_stats request :update_lb_pool # LBaaS Member CRUD request :list_lb_members request :create_lb_member request :delete_lb_member request :get_lb_member request :update_lb_member # LBaaS Health Monitor CRUD request :list_lb_health_monitors request :create_lb_health_monitor request :delete_lb_health_monitor request :get_lb_health_monitor request :update_lb_health_monitor request :associate_lb_health_monitor request :disassociate_lb_health_monitor # LBaaS VIP CRUD request :list_lb_vips request :create_lb_vip request :delete_lb_vip request :get_lb_vip request :update_lb_vip # # LBaaS V2 # # LBaaS V2 Loadbanacer request :list_lbaas_loadbalancers request :create_lbaas_loadbalancer request :delete_lbaas_loadbalancer request :get_lbaas_loadbalancer request :update_lbaas_loadbalancer # LBaaS V2 Listener request :list_lbaas_listeners request :create_lbaas_listener request :delete_lbaas_listener request :get_lbaas_listener request :update_lbaas_listener # LBaaS V2 Pool request :list_lbaas_pools request :create_lbaas_pool request :delete_lbaas_pool request :get_lbaas_pool request :update_lbaas_pool # LBaaS V2 Pool_Member request :list_lbaas_pool_members request :create_lbaas_pool_member request :delete_lbaas_pool_member request :get_lbaas_pool_member request :update_lbaas_pool_member # LBaaS V2 Healthmonitor request :list_lbaas_healthmonitors request :create_lbaas_healthmonitor request :delete_lbaas_healthmonitor request :get_lbaas_healthmonitor request :update_lbaas_healthmonitor # LBaaS V2 L7Policy request :list_lbaas_l7policies request :create_lbaas_l7policy request :delete_lbaas_l7policy request :get_lbaas_l7policy request :update_lbaas_l7policy # LBaaS V2 L7Rule request :list_lbaas_l7rules request :create_lbaas_l7rule request :delete_lbaas_l7rule request :get_lbaas_l7rule request :update_lbaas_l7rule # VPNaaS VPN Service CRUD request :list_vpn_services request :create_vpn_service request :delete_vpn_service request :get_vpn_service request :update_vpn_service # VPNaaS VPN IKE Policy CRUD request :list_ike_policies request :create_ike_policy request :delete_ike_policy request :get_ike_policy request :update_ike_policy # VPNaaS VPN IPSec Policy CRUD request :list_ipsec_policies request :create_ipsec_policy request :delete_ipsec_policy request :get_ipsec_policy request :update_ipsec_policy # VPNaaS VPN IPSec Site Connection CRUD request :list_ipsec_site_connections request :create_ipsec_site_connection request :delete_ipsec_site_connection request :get_ipsec_site_connection request :update_ipsec_site_connection # RBAC Policy CRUD request :list_rbac_policies request :create_rbac_policy request :delete_rbac_policy request :get_rbac_policy request :update_rbac_policy # Security Group request :create_security_group request :delete_security_group request :get_security_group request :list_security_groups request :update_security_group # Security Group Rules request :create_security_group_rule request :delete_security_group_rule request :get_security_group_rule request :list_security_group_rules # Tenant request :set_tenant # Quota request :get_quotas request :get_quota request :update_quota request :delete_quota class Mock def self.data @data ||= Hash.new do |hash, key| qos_policy_id = Fog::UUID.uuid network_id = Fog::UUID.uuid extension_id = Fog::UUID.uuid subnet_id = Fog::UUID.uuid tenant_id = Fog::Mock.random_hex(8) hash[key] = { :extensions => { extension_id => { 'id' => extension_id, 'alias' => 'dvr', 'description' => 'Enables configuration of Distributed Virtual Routers.', 'links' => [], 'name' => 'Distributed Virtual Router' } }, :networks => { network_id => { 'id' => network_id, 'name' => 'Public', 'subnets' => [subnet_id], 'shared' => true, 'status' => 'ACTIVE', 'tenant_id' => tenant_id, 'provider:network:type' => 'vlan', 'router:external' => false, 'admin_state_up' => true, 'qos_policy_id' => qos_policy_id, 'port_security_enabled' => true }, 'e624a36d-762b-481f-9b50-4154ceb78bbb' => { 'id' => 'e624a36d-762b-481f-9b50-4154ceb78bbb', 'name' => 'network_1', 'subnets' => ['2e4ec6a4-0150-47f5-8523-e899ac03026e'], 'shared' => false, 'status' => 'ACTIVE', 'tenant_id' => 'f8b26a6032bc47718a7702233ac708b9', 'provider:network:type' => 'vlan', 'router:external' => false, 'admin_state_up' => true, 'qos_policy_id' => qos_policy_id, 'port_security_enabled' => true } }, :ports => {}, :subnets => { subnet_id => { 'id' => subnet_id, 'name' => "Public", 'network_id' => network_id, 'cidr' => "192.168.0.0/22", 'ip_version' => 4, 'gateway_ip' => Fog::Mock.random_ip, 'allocation_pools' => [], 'dns_nameservers' => [Fog::Mock.random_ip, Fog::Mock.random_ip], 'host_routes' => [Fog::Mock.random_ip], 'enable_dhcp' => true, 'tenant_id' => tenant_id, } }, :subnet_pools => {}, :floating_ips => {}, :routers => {}, :lb_pools => {}, :lb_members => {}, :lb_health_monitors => {}, :lb_vips => {}, :lbaas_loadbalancers => {}, :lbaas_listeners => {}, :lbaas_pools => {}, :lbaas_pool_members => {}, :lbaas_health_monitorss => {}, :lbaas_l7policies => {}, :lbaas_l7rules => {}, :vpn_services => {}, :ike_policies => {}, :ipsec_policies => {}, :ipsec_site_connections => {}, :rbac_policies => {}, :quota => { "subnet" => 10, "router" => 10, "port" => 50, "network" => 10, "floatingip" => 50 }, :quotas => [ { "subnet" => 10, "network" => 10, "floatingip" => 50, "tenant_id" => tenant_id, "router" => 10, "port" => 30 } ], :security_groups => {}, :security_group_rules => {}, :network_ip_availabilities => [ { "network_id" => "4cf895c9-c3d1-489e-b02e-59b5c8976809", "network_name" => "public", "subnet_ip_availability" => [ { "cidr" => "2001:db8::/64", "ip_version" => 6, "subnet_id" => "ca3f46c4-c6ff-4272-9be4-0466f84c6077", "subnet_name" => "ipv6-public-subnet", "total_ips" => 18446744073709552000, "used_ips" => 1 }, { "cidr" => "172.24.4.0/24", "ip_version" => 4, "subnet_id" => "cc02efc1-9d47-46bd-bab6-760919c836b5", "subnet_name" => "public-subnet", "total_ips" => 253, "used_ips" => 1 } ], "project_id" => "1a02cc95f1734fcc9d3c753818f03002", "tenant_id" => "1a02cc95f1734fcc9d3c753818f03002", "total_ips" => 253, "used_ips" => 2 }, { "network_id" => "6801d9c8-20e6-4b27-945d-62499f00002e", "network_name" => "private", "subnet_ip_availability" => [ { "cidr" => "10.0.0.0/24", "ip_version" => 4, "subnet_id" => "44e70d00-80a2-4fb1-ab59-6190595ceb61", "subnet_name" => "private-subnet", "total_ips" => 253, "used_ips" => 2 }, { "ip_version" => 6, "cidr" => "fdbf:ac66:9be8::/64", "subnet_id" => "a90623df-00e1-4902-a675-40674385d74c", "subnet_name" => "ipv6-private-subnet", "total_ips" => 18446744073709552000, "used_ips" => 2 } ], "project_id" => "d56d3b8dd6894a508cf41b96b522328c", "tenant_id" => "d56d3b8dd6894a508cf41b96b522328c", "total_ips" => 18446744073709552000, "used_ips" => 4 } ] } end end def self.reset @data = nil end include Fog::OpenStack::Core def initialize(options = {}) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 end def data self.class.data["#{@openstack_username}-#{@openstack_tenant}"] end def reset_data self.class.data.delete("#{@openstack_username}-#{@openstack_tenant}") end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Network::NotFound end def default_path_prefix 'v2.0' end def default_service_type %w[network] end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/000077500000000000000000000000001476630434000212665ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/network/models/000077500000000000000000000000001476630434000225515ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/network/models/extension.rb000066400000000000000000000004361476630434000251150ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class Extension < Fog::OpenStack::Model identity :id attribute :name attribute :links attribute :description attribute :alias end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/extensions.rb000066400000000000000000000014051476630434000252750ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/extension' module Fog module OpenStack class Network class Extensions < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::Extension def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_extensions(filters), 'extensions') end def get(extension_id) if extension = service.get_extension(extension_id).body['extension'] new(extension) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/floating_ip.rb000066400000000000000000000027751476630434000254040ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class FloatingIp < Fog::OpenStack::Model identity :id attribute :floating_network_id attribute :port_id attribute :tenant_id attribute :router_id attribute :fixed_ip_address attribute :floating_ip_address def initialize(attributes) @connection = attributes[:connection] super end def create requires :floating_network_id merge_attributes(service.create_floating_ip(floating_network_id, attributes).body['floatingip']) self end def update self end def destroy requires :id service.delete_floating_ip(id) true end def associate(port_id, fixed_ip_address = nil) requires :id merge_attributes(service.associate_floating_ip( id, port_id, options(fixed_ip_address) ).body['floatingip']) end def disassociate(fixed_ip_address = nil) requires :id merge_attributes(service.disassociate_floating_ip( id, options(fixed_ip_address) ).body['floatingip']) end private def options(fixed_ip_address) fixed_ip_address ? {'fixed_ip_address' => fixed_ip_address} : {} end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/floating_ips.rb000066400000000000000000000014411476630434000255540ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/floating_ip' module Fog module OpenStack class Network class FloatingIps < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::FloatingIp def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_floating_ips(filters), 'floatingips') end def get(floating_network_id) if floating_ip = service.get_floating_ip(floating_network_id).body['floatingip'] new(floating_ip) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ike_policies.rb000066400000000000000000000014171476630434000255400ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/ike_policy' module Fog module OpenStack class Network class IkePolicies < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::IkePolicy def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_ike_policies(filters), 'ikepolicies') end def get(ike_policy_id) if ike_policy = service.get_ike_policy(ike_policy_id).body['ikepolicy'] new(ike_policy) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ike_policy.rb000066400000000000000000000022451476630434000252300ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class IkePolicy < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :status attribute :admin_state_up attribute :tenant_id attribute :auth_algorithm attribute :encryption_algorithm attribute :pfs attribute :phase1_negotiation_mode attribute :lifetime attribute :ike_version def create requires :name, :auth_algorithm, :encryption_algorithm, :ike_version, :lifetime, :pfs, :phase1_negotiation_mode merge_attributes(service.create_ike_policy(attributes).body['ikepolicy']) self end def update requires :id, :name, :auth_algorithm, :encryption_algorithm, :ike_version, :lifetime, :pfs, :phase1_negotiation_mode merge_attributes(service.update_ike_policy(id, attributes).body['ikepolicy']) self end def destroy requires :id service.delete_ike_policy(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ipsec_policies.rb000066400000000000000000000014451476630434000260740ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/ipsec_policy' module Fog module OpenStack class Network class IpsecPolicies < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::IpsecPolicy def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_ipsec_policies(filters), 'ipsecpolicies') end def get(ipsec_policy_id) if ipsec_policy = service.get_ipsec_policy(ipsec_policy_id).body['ipsecpolicy'] new(ipsec_policy) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ipsec_policy.rb000066400000000000000000000023351476630434000255630ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class IpsecPolicy < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :status attribute :admin_state_up attribute :tenant_id attribute :auth_algorithm attribute :encryption_algorithm attribute :pfs attribute :transform_protocol attribute :encapsulation_mode attribute :lifetime def create requires :name, :auth_algorithm, :encryption_algorithm, :lifetime, :pfs, :transform_protocol, :encapsulation_mode merge_attributes(service.create_ipsec_policy(attributes).body['ipsecpolicy']) self end def update requires :id, :name, :auth_algorithm, :encryption_algorithm, :lifetime, :pfs, :transform_protocol, :encapsulation_mode merge_attributes(service.update_ipsec_policy(id, attributes).body['ipsecpolicy']) self end def destroy requires :id service.delete_ipsec_policy(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ipsec_site_connection.rb000066400000000000000000000031421476630434000274440ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class IpsecSiteConnection < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :status attribute :admin_state_up attribute :tenant_id attribute :vpnservice_id attribute :ikepolicy_id attribute :ipsecpolicy_id attribute :peer_address attribute :peer_id attribute :peer_cidrs attribute :psk attribute :mtu attribute :dpd attribute :initiator def create requires :name, :vpnservice_id, :ikepolicy_id, :ipsecpolicy_id, :peer_address, :peer_id, :peer_cidrs, :psk merge_attributes(service.create_ipsec_site_connection(vpnservice_id, ikepolicy_id, ipsecpolicy_id, attributes).body['ipsec_site_connection']) self end def update requires :id, :name, :vpnservice_id, :ikepolicy_id, :ipsecpolicy_id, :peer_address, :peer_id, :peer_cidrs, :psk merge_attributes(service.update_ipsec_site_connection(id, attributes).body['ipsec_site_connection']) self end def destroy requires :id service.delete_ipsec_site_connection(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ipsec_site_connections.rb000066400000000000000000000016041476630434000276300ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/ipsec_site_connection' module Fog module OpenStack class Network class IpsecSiteConnections < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::IpsecSiteConnection def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_ipsec_site_connections(filters), 'ipsec_site_connections') end def get(ipsec_site_connection_id) connection = service.get_ipsec_site_connection(ipsec_site_connection_id).body['ipsec_site_connection'] if connection new(connection) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_health_monitor.rb000066400000000000000000000031551476630434000265730ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class LbHealthMonitor < Fog::OpenStack::Model identity :id attribute :type attribute :delay attribute :timeout attribute :max_retries attribute :http_method attribute :url_path attribute :expected_codes attribute :status attribute :admin_state_up attribute :tenant_id def create requires :type, :delay, :timeout, :max_retries merge_attributes(service.create_lb_health_monitor(type, delay, timeout, max_retries, attributes).body['health_monitor']) self end def update requires :id, :type, :delay, :timeout, :max_retries merge_attributes(service.update_lb_health_monitor(id, attributes).body['health_monitor']) self end def destroy requires :id service.delete_lb_health_monitor(id) true end def associate_to_pool(pool_id) requires :id service.associate_lb_health_monitor(pool_id, id) true end def disassociate_from_pool(pool_id) requires :id service.disassociate_lb_health_monitor(pool_id, id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_health_monitors.rb000066400000000000000000000015071476630434000267550ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/lb_health_monitor' module Fog module OpenStack class Network class LbHealthMonitors < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::LbHealthMonitor def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_lb_health_monitors(filters), 'health_monitors') end def get(health_monitor_id) if health_monitor = service.get_lb_health_monitor(health_monitor_id).body['health_monitor'] new(health_monitor) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_member.rb000066400000000000000000000022371476630434000250260ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class LbMember < Fog::OpenStack::Model identity :id attribute :pool_id attribute :address attribute :protocol_port attribute :weight attribute :status attribute :admin_state_up attribute :tenant_id def create requires :pool_id, :address, :protocol_port, :weight merge_attributes(service.create_lb_member(pool_id, address, protocol_port, weight, attributes).body['member']) self end def update requires :id, :pool_id, :address, :protocol_port, :weight merge_attributes(service.update_lb_member(id, attributes).body['member']) self end def destroy requires :id service.delete_lb_member(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_members.rb000066400000000000000000000013611476630434000252060ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/lb_member' module Fog module OpenStack class Network class LbMembers < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::LbMember def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_lb_members(filters), 'members') end def get(member_id) if member = service.get_lb_member(member_id).body['member'] new(member) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_pool.rb000066400000000000000000000034451476630434000245320ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class LbPool < Fog::OpenStack::Model identity :id attribute :subnet_id attribute :protocol attribute :lb_method attribute :name attribute :description attribute :health_monitors attribute :members attribute :status attribute :admin_state_up attribute :vip_id attribute :tenant_id attribute :active_connections attribute :bytes_in attribute :bytes_out attribute :total_connections def create requires :subnet_id, :protocol, :lb_method merge_attributes(service.create_lb_pool(subnet_id, protocol, lb_method, attributes).body['pool']) self end def update requires :id, :subnet_id, :protocol, :lb_method merge_attributes(service.update_lb_pool(id, attributes).body['pool']) self end def destroy requires :id service.delete_lb_pool(id) true end def stats requires :id merge_attributes(service.get_lb_pool_stats(id).body['stats']) self end def associate_health_monitor(health_monitor_id) requires :id service.associate_lb_health_monitor(id, health_monitor_id) true end def disassociate_health_monitor(health_monitor_id) requires :id service.disassociate_lb_health_monitor(id, health_monitor_id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_pools.rb000066400000000000000000000013331476630434000247070ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/lb_pool' module Fog module OpenStack class Network class LbPools < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::LbPool def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_lb_pools(filters), 'pools') end def get(pool_id) if pool = service.get_lb_pool(pool_id).body['pool'] new(pool) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_vip.rb000066400000000000000000000025061476630434000243540ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class LbVip < Fog::OpenStack::Model identity :id attribute :subnet_id attribute :pool_id attribute :protocol attribute :protocol_port attribute :name attribute :description attribute :address attribute :port_id attribute :session_persistence attribute :connection_limit attribute :status attribute :admin_state_up attribute :tenant_id def create requires :subnet_id, :pool_id, :protocol, :protocol_port merge_attributes(service.create_lb_vip(subnet_id, pool_id, protocol, protocol_port, attributes).body['vip']) self end def update requires :id, :subnet_id, :pool_id, :protocol, :protocol_port merge_attributes(service.update_lb_vip(id, attributes).body['vip']) self end def destroy requires :id service.delete_lb_vip(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/lb_vips.rb000066400000000000000000000013201476630434000245300ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/lb_vip' module Fog module OpenStack class Network class LbVips < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::LbVip def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_lb_vips(filters), 'vips') end def get(vip_id) if vip = service.get_lb_vip(vip_id).body['vip'] new(vip) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/network.rb000066400000000000000000000021501476630434000245650ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class Network < Fog::OpenStack::Model identity :id attribute :name attribute :shared attribute :status attribute :admin_state_up attribute :tenant_id attribute :provider_network_type, :aliases => 'provider:network_type' attribute :provider_physical_network, :aliases => 'provider:physical_network' attribute :provider_segmentation_id, :aliases => 'provider:segmentation_id' attribute :router_external, :aliases => 'router:external' def subnets service.subnets.select { |s| s.network_id == id } end def create merge_attributes(service.create_network(attributes).body['network']) self end def update requires :id merge_attributes(service.update_network(id, attributes).body['network']) self end def destroy requires :id service.delete_network(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/network_ip_availabilities.rb000066400000000000000000000013041476630434000303170ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/network_ip_availability' module Fog module OpenStack class Network class NetworkIpAvailabilities < Fog::OpenStack::Collection model Fog::OpenStack::Network::NetworkIpAvailability def all load_response(service.list_network_ip_availabilities, 'network_ip_availabilities') end def get(network_id) if network_ip_availability = service.get_network_ip_availability(network_id).body['network_ip_availability'] new(network_ip_availability) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/network_ip_availability.rb000066400000000000000000000006101476630434000300060ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class NetworkIpAvailability < Fog::OpenStack::Model attribute :used_ips attribute :subnet_ip_availability attribute :network_id attribute :project_id attribute :tenant_id attribute :total_ips attribute :network_name end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/networks.rb000066400000000000000000000013571476630434000247600ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/network' module Fog module OpenStack class Network class Networks < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::Network def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_networks(filters), 'networks') end def get(network_id) if network = service.get_network(network_id).body['network'] new(network) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/port.rb000066400000000000000000000017461476630434000240720ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class Port < Fog::OpenStack::Model identity :id attribute :name attribute :network_id attribute :fixed_ips attribute :mac_address attribute :status attribute :admin_state_up attribute :device_owner attribute :device_id attribute :tenant_id attribute :security_groups def create requires :network_id merge_attributes(service.create_port(network_id, attributes).body['port']) self end def update requires :id, :network_id merge_attributes(service.update_port(id, attributes).body['port']) self end def destroy requires :id service.delete_port(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/ports.rb000066400000000000000000000013161476630434000242460ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/port' module Fog module OpenStack class Network class Ports < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::Port def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_ports(filters), 'ports') end def get(port_id) if port = service.get_port(port_id).body['port'] new(port) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/rbac_policies.rb000066400000000000000000000014711476630434000256770ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/rbac_policy' module Fog module OpenStack class Network class RbacPolicies < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::RbacPolicy def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_rbac_policies(filters), 'rbac_policies') end def get(rbac_policy_id) if rbac_policy = service.get_rbac_policy(rbac_policy_id).body['rbac_policy'] new(rbac_policy) end rescue Fog::OpenStack::Network::NotFound nil end alias find_by_id get end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/rbac_policy.rb000066400000000000000000000014321476630434000253640ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class RbacPolicy < Fog::OpenStack::Model identity :id attribute :object_type attribute :tenant_id attribute :target_tenant attribute :action def create requires :object_type, :object_id, :target_tenant, :action merge_attributes(service.create_rbac_policy(attributes).body['rbac_policy']) self end def update requires :id, :target_tenant merge_attributes(service.update_rbac_policy(id, attributes).body['rbac_policy']) self end def destroy requires :id service.delete_rbac_policy(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/router.rb000066400000000000000000000031101476630434000244110ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network # The Layer-3 Networking Extensions (router) # # A logical entity for forwarding packets across internal # subnets and NATting them on external networks through # an appropriate external gateway. # # @see http://docs.openstack.org/api/openstack-network/2.0/content/router_ext.html class Router < Fog::OpenStack::Model identity :id attribute :name attribute :admin_state_up attribute :tenant_id attribute :external_gateway_info attribute :status def create requires :name response = service.create_router(name, options) merge_attributes(response.body['router']) self end def update requires :id response = service.update_router(id, options) merge_attributes(response.body['router']) self end def destroy requires :id service.delete_router(id) true end private def options options = attributes.dup if options[:external_gateway_info] if options[:external_gateway_info].kind_of?(Fog::OpenStack::Network::Network) options[:external_gateway_info] = {:network_id => options[:external_gateway_info].id} else options[:external_gateway_info] = {:network_id => options[:external_gateway_info]} end end options end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/routers.rb000066400000000000000000000013441476630434000246030ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/router' module Fog module OpenStack class Network class Routers < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::Router def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_routers(filters), 'routers') end def get(router_id) if router = service.get_router(router_id).body['router'] new(router) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/security_group.rb000066400000000000000000000015771476630434000261730ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class SecurityGroup < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :security_group_rules attribute :tenant_id def destroy requires :id service.delete_security_group(id) true end def security_group_rules Fog::OpenStack::Network::SecurityGroupRules.new(:service => service).load(attributes[:security_group_rules]) end def save merge_attributes(service.create_security_group(attributes).body['security_group']) self end def update requires :id merge_attributes(service.update_security_group(id, attributes).body['security_group']) self end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/security_group_rule.rb000066400000000000000000000015621476630434000272140ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class SecurityGroupRule < Fog::OpenStack::Model identity :id attribute :security_group_id attribute :direction attribute :protocol attribute :port_range_min attribute :port_range_max attribute :remote_ip_prefix attribute :ethertype attribute :remote_group_id attribute :tenant_id def destroy requires :id service.delete_security_group_rule(id) true end def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? merge_attributes(service.create_security_group_rule(security_group_id, direction, attributes).body['security_group_rule']) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/security_group_rules.rb000066400000000000000000000015331476630434000273750ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/security_group_rule' module Fog module OpenStack class Network class SecurityGroupRules < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::SecurityGroupRule def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_security_group_rules(filters), 'security_group_rules') end def get(sec_group_rule_id) if sec_group_rule = service.get_security_group_rule(sec_group_rule_id).body['security_group_rule'] new(sec_group_rule) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/security_groups.rb000066400000000000000000000014721476630434000263500ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/security_group' module Fog module OpenStack class Network class SecurityGroups < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::SecurityGroup def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_security_groups(filters), 'security_groups') end def get(security_group_id) if security_group = service.get_security_group(security_group_id).body['security_group'] new(security_group) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/subnet.rb000066400000000000000000000021621476630434000243770ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class Subnet < Fog::OpenStack::Model identity :id attribute :name attribute :network_id attribute :cidr attribute :ip_version attribute :gateway_ip attribute :allocation_pools attribute :dns_nameservers attribute :host_routes attribute :enable_dhcp attribute :tenant_id def create requires :network_id, :cidr, :ip_version merge_attributes(service.create_subnet(network_id, cidr, ip_version, attributes).body['subnet']) self end def update requires :id merge_attributes(service.update_subnet(id, attributes).body['subnet']) self end def destroy requires :id service.delete_subnet(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/subnet_pool.rb000066400000000000000000000023201476630434000254240ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class SubnetPool < Fog::OpenStack::Model identity :id attribute :name attribute :prefixes attribute :description attribute :address_scope_id attribute :shared attribute :ip_version attribute :min_prefixlen attribute :max_prefixlen attribute :default_prefixlen attribute :is_default attribute :default_quota attribute :created_at attribute :updated_at attribute :tenant_id def create requires :name, :prefixes merge_attributes(service.create_subnet_pool(name, prefixes, attributes).body['subnetpool']) self end def update requires :id merge_attributes(service.update_subnet_pool(id, attributes).body['subnetpool']) self end def destroy requires :id service.delete_subnet_pool(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/subnet_pools.rb000066400000000000000000000014551476630434000256170ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/subnet_pool' module Fog module OpenStack class Network class SubnetPools < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::SubnetPool def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_subnet_pools(filters), 'subnetpools') end def get(subnet_pool_id) subnet_pool = service.get_subnet_pool(subnet_pool_id).body['subnetpool'] if subnet_pool new(subnet_pool) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/subnets.rb000066400000000000000000000013441476630434000245630ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/subnet' module Fog module OpenStack class Network class Subnets < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::Subnet def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_subnets(filters), 'subnets') end def get(subnet_id) if subnet = service.get_subnet(subnet_id).body['subnet'] new(subnet) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/vpn_service.rb000066400000000000000000000022041476630434000254170ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Network class VpnService < Fog::OpenStack::Model identity :id attribute :subnet_id attribute :router_id attribute :name attribute :description attribute :status attribute :admin_state_up attribute :tenant_id attribute :external_v4_ip attribute :external_v6_ip def create requires :subnet_id, :router_id, :name, :admin_state_up merge_attributes(service.create_vpn_service(subnet_id, router_id, attributes).body['vpnservice']) self end def update requires :id, :subnet_id, :router_id, :name, :admin_state_up merge_attributes(service.update_vpn_service(id, attributes).body['vpnservice']) self end def destroy requires :id service.delete_vpn_service(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/models/vpn_services.rb000066400000000000000000000014271476630434000256100ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/network/models/vpn_service' module Fog module OpenStack class Network class VpnServices < Fog::OpenStack::Collection attribute :filters model Fog::OpenStack::Network::VpnService def initialize(attributes) self.filters ||= {} super end def all(filters_arg = filters) filters = filters_arg load_response(service.list_vpn_services(filters), 'vpnservices') end def get(vpn_service_id) if vpn_service = service.get_vpn_service(vpn_service_id).body['vpnservice'] new(vpn_service) end rescue Fog::OpenStack::Network::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/000077500000000000000000000000001476630434000231415ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/network/requests/add_router_interface.rb000066400000000000000000000033151476630434000276400ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def add_router_interface(router_id, subnet_id_or_options) if subnet_id_or_options.kind_of? String data = { 'subnet_id' => subnet_id_or_options, } elsif subnet_id_or_options.kind_of? Hash data = subnet_id_or_options else raise ArgumentError, 'Please pass a subnet id or hash {subnet_id:xxx,port_id:xxx}' end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "routers/#{router_id}/add_router_interface" ) end end class Mock def add_router_interface(_router_id, _subnet_id, _options = {}) response = Excon::Response.new response.status = 201 data = { 'status' => 'ACTIVE', 'name' => '', 'admin_state_up' => true, 'network_id' => '5307648b-e836-4658-8f1a-ff7536870c64', 'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3', 'device_owner' => 'network:router_interface', 'mac_address' => 'fa:16:3e:f7:d1:9c', 'fixed_ips' => { 'subnet_id' => 'a2f1f29d-571b-4533-907f-5803ab96ead1', 'ip_address' => '10.1.1.1' }, 'id' => '3a44f4e5-1694-493a-a1fb-393881c673a4', 'device_id' => '7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b' } self.data[:routers][data['router_id']] = data response.body = {'router' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/associate_floating_ip.rb000066400000000000000000000027201476630434000300150ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def associate_floating_ip(floating_ip_id, port_id, options = {}) data = { 'floatingip' => { 'port_id' => port_id, } } vanilla_options = [:fixed_ip_address] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['floatingip'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "floatingips/#{floating_ip_id}" ) end end class Mock def associate_floating_ip(_floating_ip_id, port_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => '00000000-0000-0000-0000-000000000000', 'router_id' => '00000000-0000-0000-0000-000000000000', 'tenant_id' => options["tenant_id"], 'floating_network_id' => options["floating_network_id"], 'fixed_ip_address' => options["fixed_ip_address"], 'floating_ip_address' => options["floating_ip_address"], 'port_id' => port_id, } self.data[:floating_ips][data['floating_ip_id']] = data response.body = {'floatingip' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/associate_lb_health_monitor.rb000066400000000000000000000017711476630434000312200ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def associate_lb_health_monitor(pool_id, health_monitor_id) data = { 'health_monitor' => { 'id' => health_monitor_id, } } request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => "lb/pools/#{pool_id}/health_monitors" ) end end class Mock def associate_lb_health_monitor(pool_id, health_monitor_id) response = Excon::Response.new if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id } pool['health_monitors'] << health_monitor_id data[:lb_pools][pool_id] = pool response.body = {'health_monitor' => {}} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_floating_ip.rb000066400000000000000000000025641476630434000273130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_floating_ip(floating_network_id, options = {}) data = { 'floatingip' => { 'floating_network_id' => floating_network_id } } vanilla_options = [:port_id, :tenant_id, :fixed_ip_address, :floating_ip_address, :subnet_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['floatingip'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'floatingips' ) end end class Mock def create_floating_ip(floating_network_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => floating_network_id, 'floating_network_id' => floating_network_id, 'port_id' => options[:port_id], 'tenant_id' => options[:tenant_id], 'fixed_ip_address' => options[:fixed_ip_address], 'router_id' => nil, } self.data[:floating_ips][data['id']] = data response.body = {'floatingip' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_ike_policy.rb000066400000000000000000000033321476630434000271410ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_ike_policy(options = {}) data = { 'ikepolicy' => { } } vanilla_options = [:name, :description, :tenant_id, :auth_algorithm, :encryption_algorithm, :pfs, :phase1_negotiation_mode, :lifetime, :ike_version] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['ikepolicy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'vpn/ikepolicies' ) end end class Mock def create_ike_policy(options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'description' => options[:description], 'tenant_id' => options[:tenant_id], 'auth_algorithm' => options[:auth_algorithm], 'encryption_algorithm' => options[:encryption_algorithm], 'pfs' => options[:pfs], 'phase1_negotiation_mode' => options[:phase1_negotiation_mode], 'lifetime' => options[:lifetime], 'ike_version' => options[:ike_version] } self.data[:ike_policies][data['id']] = data response.body = {'ikepolicy' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_ipsec_policy.rb000066400000000000000000000033161476630434000274760ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_ipsec_policy(options = {}) data = { 'ipsecpolicy' => { } } vanilla_options = [:name, :description, :tenant_id, :auth_algorithm, :encryption_algorithm, :pfs, :transform_protocol, :lifetime, :encapsulation_mode] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['ipsecpolicy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'vpn/ipsecpolicies' ) end end class Mock def create_ipsec_policy(options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'description' => options[:description], 'tenant_id' => options[:tenant_id], 'auth_algorithm' => options[:auth_algorithm], 'encryption_algorithm' => options[:encryption_algorithm], 'pfs' => options[:pfs], 'transform_protocol' => options[:transform_protocol], 'lifetime' => options[:lifetime], 'encapsulation_mode' => options[:encapsulation_mode] } self.data[:ipsec_policies][data['id']] = data response.body = {'ipsecpolicy' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_ipsec_site_connection.rb000066400000000000000000000047111476630434000313620ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_ipsec_site_connection(vpn_service_id, ike_policy_id, ipsec_policy_id, options = {}) data = { 'ipsec_site_connection' => { 'vpnservice_id' => vpn_service_id, 'ikepolicy_id' => ike_policy_id, 'ipsecpolicy_id' => ipsec_policy_id } } vanilla_options = [:name, :description, :tenant_id, :peer_address, :peer_id, :peer_cidrs, :psk, :mtu, :dpd, :initiator, :admin_state_up] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['ipsec_site_connection'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'vpn/ipsec-site-connections' ) end end class Mock def create_ipsec_site_connection(vpn_service_id, ike_policy_id, ipsec_policy_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'description' => options[:description], 'status' => 'ACTIVE', 'tenant_id' => options[:tenant_id], 'admin_state_up' => options[:admin_state_up], 'psk' => options[:psk], 'initiator' => options[:initiator], 'auth_mode' => "psk", 'peer_cidrs' => options[:peer_cidrs], 'mtu' => options[:mtu], 'peer_ep_group_id' => Fog::Mock.random_numbers(6).to_s, 'ikepolicy_id' => ike_policy_id, 'vpnservice_id' => vpn_service_id, 'dpd' => options[:dpd], 'route_mode' => "static", 'ipsecpolicy_id' => ipsec_policy_id, 'local_ep_group_id' => Fog::Mock.random_numbers(6).to_s, 'peer_address' => options[:peer_address], 'peer_id' => options[:peer_id] } self.data[:ipsec_site_connections][data['id']] = data response.body = {'ipsec_site_connection' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lb_health_monitor.rb000066400000000000000000000033471476630434000305110ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lb_health_monitor(type, delay, timeout, max_retries, options = {}) data = { 'health_monitor' => { 'type' => type, 'delay' => delay, 'timeout' => timeout, 'max_retries' => max_retries } } vanilla_options = [:http_method, :url_path, :expected_codes, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['health_monitor'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lb/health_monitors' ) end end class Mock def create_lb_health_monitor(type, delay, timeout, max_retries, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'type' => type, 'delay' => delay, 'timeout' => timeout, 'max_retries' => max_retries, 'http_method' => options[:http_method], 'url_path' => options[:url_path], 'expected_codes' => options[:expected_codes], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], } self.data[:lb_health_monitors][data['id']] = data response.body = {'health_monitor' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lb_member.rb000066400000000000000000000030001476630434000267260ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lb_member(pool_id, address, protocol_port, weight, options = {}) data = { 'member' => { 'pool_id' => pool_id, 'address' => address, 'protocol_port' => protocol_port, 'weight' => weight } } vanilla_options = [:admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['member'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lb/members' ) end end class Mock def create_lb_member(pool_id, address, protocol_port, weight, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'pool_id' => pool_id, 'address' => address, 'protocol_port' => protocol_port, 'weight' => weight, 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], } self.data[:lb_members][data['id']] = data response.body = {'member' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lb_pool.rb000066400000000000000000000034751476630434000264500ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lb_pool(subnet_id, protocol, lb_method, options = {}) data = { 'pool' => { 'subnet_id' => subnet_id, 'protocol' => protocol, 'lb_method' => lb_method } } vanilla_options = [:name, :description, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['pool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lb/pools' ) end end class Mock def create_lb_pool(subnet_id, protocol, lb_method, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'subnet_id' => subnet_id, 'protocol' => protocol, 'lb_method' => lb_method, 'name' => options[:name], 'description' => options[:description], 'health_monitors' => [], 'members' => [], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'vip_id' => nil, 'tenant_id' => options[:tenant_id], 'active_connections' => nil, 'bytes_in' => nil, 'bytes_out' => nil, 'total_connections' => nil } self.data[:lb_pools][data['id']] = data response.body = {'pool' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lb_vip.rb000066400000000000000000000037761476630434000263010ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lb_vip(subnet_id, pool_id, protocol, protocol_port, options = {}) data = { 'vip' => { 'subnet_id' => subnet_id, 'pool_id' => pool_id, 'protocol' => protocol, 'protocol_port' => protocol_port } } vanilla_options = [:name, :description, :address, :session_persistence, :connection_limit, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['vip'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lb/vips' ) end end class Mock def create_lb_vip(subnet_id, pool_id, protocol, protocol_port, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'subnet_id' => subnet_id, 'pool_id' => pool_id, 'protocol' => protocol, 'protocol_port' => protocol_port, 'name' => options[:name], 'description' => options[:description], 'address' => options[:address], 'port_id' => Fog::Mock.random_numbers(6).to_s, 'session_persistence' => options[:session_persistence], 'connection_limit' => options[:connection_limit], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], } self.data[:lb_vips][data['id']] = data response.body = {'vip' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_healthmonitor.rb000066400000000000000000000036321476630434000310340ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_healthmonitor(pool_id, type, delay, timeout, max_retries, options = {}) data = { 'healthmonitor' => { 'pool_id' => pool_id, 'type' => type, 'delay' => delay, 'timeout' => timeout, 'max_retries' => max_retries } } vanilla_options = [:http_method, :url_path, :expected_codes, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['healthmonitor'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lbaas/healthmonitors' ) end end class Mock def create_lbaas_healthmonitor(type, delay, timeout, max_retries, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'type' => type, 'delay' => delay, 'timeout' => timeout, 'max_retries' => max_retries, 'http_method' => options[:http_method], 'url_path' => options[:url_path], 'expected_codes' => options[:expected_codes], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], 'name' => options[:name], 'pools' => [{ 'id'=> Fog::Mock.random_numbers(6).to_s}] } self.data[:lbaas_healthmonitors][data['id']] = data response.body = {'healthmonitor' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_l7policy.rb000066400000000000000000000030571476630434000277220ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_l7policy(listener_id, action, options = {}) data = { 'l7policy' => { 'listener_id' => listener_id, 'action' => action } } vanilla_options = [:tenant_id, :name, :description, :redirect_pool_id, :redirect_url, :position] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['l7policy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lbaas/l7policies' ) end end class Mock def create_lbaas_l7policy(listener_id, action, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'listener_id' => listener_id, 'action' => action, 'position' => options[:position], 'tenant_id' => options[:tenant_id], 'name' => options[:name], 'description' => options[:description], 'redirect_pool_id' => options[:redirect_pool_id], 'redirect_url' => options[:redirect_url] } self.data[:lbaas_l7policies][data['id']] = data response.body = {'l7policy' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_l7rule.rb000066400000000000000000000027561476630434000273770ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_l7rule(l7policy_id, type, compare_type, value, options = {}) data = { 'rule' => { 'type' => type, 'compare_type' => compare_type, 'value' => value } } vanilla_options = [:tenant_id, :key, :invert] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['rule'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => "lbaas/l7policies/#{l7policy_id}/rules" ) end end class Mock def create_lbaas_l7rule(l7policy_id, type, compare_type, value, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'type' => type, 'compare_type' => compare_type, 'value' => value, 'tenant_id' => options[:tenant_id], 'key' => options[:key], 'invert' => options[:invert], 'l7policy_id' => l7policy_id } self.data[:lbaas_l7rules][data['id']] = data response.body = {'rule' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_listener.rb000066400000000000000000000040351476630434000300020ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_listener(loadbalancer_id, protocol, protocol_port, options = {}) data = { 'listener' => { 'loadbalancer_id' => loadbalancer_id, 'protocol' => protocol, 'protocol_port' => protocol_port } } vanilla_options = [:name, :description, :default_pool_id, :connection_limit, :default_tls_container_ref, :sni_container_refs, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['listener'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lbaas/listeners' ) end end class Mock def create_lbaas_listener(loadbalancer_id, protocol, protocol_port, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'loadbalancers' => [{'id' => loadbalancer_id }], 'protocol' => protocol, 'protocol_port' => protocol_port, 'name' => options[:name], 'description' => options[:description], 'default_pool_id' => options[:default_pool_id], 'connection_limit' => options[:connection_limit], 'default_tls_container_ref' => options[:default_tls_container_ref], 'sni_container_refs' => options[:sni_container_refs], 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id] } self.data[:lbaas_listener][data['id']] = data response.body = {'listener' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_loadbalancer.rb000066400000000000000000000034161476630434000305660ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_loadbalancer(vip_subnet_id, options = {}) data = { 'loadbalancer' => { 'vip_subnet_id' => vip_subnet_id } } vanilla_options = [:name, :description, :vip_address, :provider, :flavor, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['loadbalancer'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lbaas/loadbalancers' ) end end class Mock def create_lbaas_loadbalancer(vip_subnet_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'subnet_id' => vip_subnet_id, 'name' => options[:name], 'description' => options[:description], 'vip_address' => options[:vip_address], 'vip_port_id'=> Fog::Mock.random_numbers(6).to_s, 'vip_subnet_id'=> vip_subnet_id, 'flavor' => options[:flavor], 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], 'listeners'=> [{ 'id'=> Fog::Mock.random_numbers(6).to_s}], 'operating_status'=> 'ONLINE', 'provider'=> 'lbprovider', 'provisioning_status'=> 'ACTIVE' } self.data[:lbaas_loadbalancer][data['id']] = data response.body = {'loadbalancer' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_pool.rb000066400000000000000000000034351476630434000271310ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_pool(listener_id, protocol, lb_algorithm, options = {}) data = { 'pool' => { 'listener_id' => listener_id, 'protocol' => protocol, 'lb_algorithm' => lb_algorithm } } vanilla_options = [:name, :description, :admin_state_up, :session_persistence, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['pool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'lbaas/pools' ) end end class Mock def create_lbaas_pool(listener_id, protocol, lb_algorithm, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'protocol' => protocol, 'lb_algorithm' => lb_algorithm, 'name' => options[:name], 'description' => options[:description], 'healthmonitor_id' => Fog::Mock.random_numbers(6).to_s, 'members' => [Fog::Mock.random_numbers(6).to_s], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], 'listeners' => [ 'id' => listener_id ], 'session_persistence' => {} } self.data[:lbaas_pools][data['id']] = data response.body = {'pool' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_lbaas_pool_member.rb000066400000000000000000000030641476630434000304560ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_lbaas_pool_member(pool_id, address, protocol_port, options = {}) data = { 'member' => { 'address' => address, 'protocol_port' => protocol_port } } vanilla_options = [:admin_state_up, :tenant_id, :weight, :subnet_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['member'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => "lbaas/pools/#{pool_id}/members" ) end end class Mock def create_lbaas_pool_member(pool_id, address, protocol_port, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'pool_id' => pool_id, 'address' => address, 'protocol_port' => protocol_port, 'weight' => options[:weight], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], 'subnet_id' => ptions[:subnet_id] } self.data[:lb_members][data['id']] = data response.body = {'member' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_network.rb000066400000000000000000000054361476630434000265120ustar00rootroot00000000000000module Fog module OpenStack class Network class Real CREATE_OPTIONS = [ :name, :shared, :admin_state_up, :qos_policy_id, :port_security_enabled, :tenant_id, ].freeze # Advanced Features through API Extensions # # Not strictly required but commonly found in OpenStack # installs with Quantum networking. # # @see http://docs.openstack.org/trunk/openstack-network/admin/content/provider_attributes.html EXTENTED_OPTIONS = [ :provider_network_type, :provider_segmentation_id, :provider_physical_network, :router_external, ].freeze # Map Fog::OpenStack::Network::Network # model attributes to OpenStack provider attributes ALIASES = { :provider_network_type => 'provider:network_type', # Not applicable to the "local" or "gre" network types :provider_physical_network => 'provider:physical_network', :provider_segmentation_id => 'provider:segmentation_id', :router_external => 'router:external' }.freeze def self.create(options) data = {} CREATE_OPTIONS.reject { |o| options[o].nil? }.each do |key| data[key.to_s] = options[key] end EXTENTED_OPTIONS.reject { |o| options[o].nil? }.each do |key| aliased_key = ALIASES[key] || key data[aliased_key] = options[key] end data end def create_network(options = {}) data = {} data['network'] = self.class.create(options) request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'networks' ) end end class Mock def create_network(options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'shared' => options[:shared] || false, 'subnets' => [], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up] || false, 'tenant_id' => options[:tenant_id], 'qos_policy_id' => options[:qos_policy_id], 'port_security_enabled' => options[:port_security_enabled] || false } data.merge!(Fog::OpenStack::Network::Real.create(options)) self.data[:networks][data['id']] = data response.body = {'network' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_port.rb000066400000000000000000000034451476630434000260030ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_port(network_id, options = {}) data = { 'port' => { 'network_id' => network_id, } } vanilla_options = [:name, :fixed_ips, :mac_address, :admin_state_up, :device_owner, :device_id, :tenant_id, :security_groups, :allowed_address_pairs] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['port'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'ports' ) end end class Mock def create_port(network_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'network_id' => network_id, 'fixed_ips' => options[:fixed_ips], 'mac_address' => options[:mac_address], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'device_owner' => options[:device_owner], 'device_id' => options[:device_id], 'tenant_id' => options[:tenant_id], 'security_groups' => options[:security_groups], 'allowed_address_pairs' => options[:allowed_address_pairs], } self.data[:ports][data['id']] = data response.body = {'port' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_rbac_policy.rb000066400000000000000000000023331476630434000273000ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_rbac_policy(options = {}) data = {'rbac_policy' => {}} vanilla_options = [:object_type, :object_id, :tenant_id, :target_tenant, :action] vanilla_options.select { |o| options.key?(o) }.each do |key| data['rbac_policy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'rbac-policies' ) end end class Mock def create_rbac_policy(options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'object_type' => options[:object_type], 'object_id' => options[:object_id], 'tenant_id' => options[:tenant_id], 'target_tenant' => options[:target_tenant], 'action' => options[:action] } self.data[:rbac_policies][data['id']] = data response.body = {'rbac_policy' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_router.rb000066400000000000000000000051101476630434000263260ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_router(name, options = {}) data = { 'router' => { 'name' => name, } } vanilla_options = [ :admin_state_up, :tenant_id, :network_id, :status, :subnet_id ] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['router'][key] = options[key] end # remove this in a future egi = options[:external_gateway_info] if egi if egi.kind_of?(Fog::OpenStack::Network::Network) Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \ Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]" data['router'][:external_gateway_info] = {:network_id => egi.id} elsif egi.kind_of?(Hash) && egi[:network_id] data['router'][:external_gateway_info] = egi else raise ArgumentError, 'Invalid external_gateway_info attribute' end end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'routers' ) end end class Mock def create_router(name, options = {}) response = Excon::Response.new response.status = 201 # remove this in a future egi = options[:external_gateway_info] if egi && egi.kind_of?(Fog::OpenStack::Network::Network) Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \ Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]" egi = {:network_id => egi.id} end data = { 'router' => { :id => Fog::Mock.random_numbers(6).to_s, :status => options[:status] || 'ACTIVE', :external_gateway_info => egi, :name => name, :admin_state_up => options[:admin_state_up], :tenant_id => '6b96ff0cb17a4b859e1e575d221683d3' } } self.data[:routers][data['router'][:id]] = data['router'] response.body = data response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_security_group.rb000066400000000000000000000101641476630434000300760ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Create a new security group # # ==== Parameters # * options<~Hash>: # * 'name'<~String> - Name of the security group # * 'description'<~String> - Description of the security group # * 'tenant_id'<~String> - TenantId different than the current user, that should own the security group. Only allowed if user has 'admin' role. # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_groups'<~Array>: # * 'id'<~String> - UUID of the security group # * 'name'<~String> - Name of the security group # * 'description'<~String> - Description of the security group # * 'tenant_id'<~String> - Tenant id that owns the security group # * 'security_group_rules'<~Array>: - Array of security group rules # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def create_security_group(options = {}) data = {"security_group" => {}} desired_options = [:name, :description, :tenant_id] selected_options = desired_options.select { |o| options[o] } selected_options.each { |key| data["security_group"][key] = options[key] } request( :body => Fog::JSON.encode(data), :expects => 201, :method => "POST", :path => "security-groups" ) end end class Mock def create_security_group(options = {}) # Spaces are NOT removed from name and description, as in case of compute sec groups tenant_id = Fog::Mock.random_numbers(14).to_s sec_group_id = Fog::UUID.uuid response = Excon::Response.new response.status = 201 # by default every security group will come setup with an egress rule to "allow all out" data = { "security_group_rules" => [ {"remote_group_id" => nil, "direction" => "egress", "remote_ip_prefix" => nil, "protocol" => nil, "ethertype" => "IPv4", "tenant_id" => tenant_id, "port_range_max" => nil, "port_range_min" => nil, "id" => Fog::UUID.uuid, "security_group_id" => sec_group_id}, {"remote_group_id" => nil, "direction" => "egress", "remote_ip_prefix" => nil, "protocol" => nil, "ethertype" => "IPv6", "tenant_id" => tenant_id, "port_range_max" => nil, "port_range_min" => nil, "id" => Fog::UUID.uuid, "security_group_id" => sec_group_id} ], "id" => sec_group_id, "tenant_id" => tenant_id, "name" => options[:name] || "", "description" => options[:description] || "" } self.data[:security_groups][data["id"]] = data response.body = {"security_group" => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_security_group_rule.rb000066400000000000000000000074051476630434000311310ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Create a new security group rule # # ==== Parameters # * 'security_group_id'<~String> - UUID of the parent security group # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * options<~Hash>: # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - TenantId different than the current user, that should own the security group. Only allowed if user has 'admin' role. # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_group_rule'<~Hash>: # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~String> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~String> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the source security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def create_security_group_rule(security_group_id, direction, options = {}) data = {"security_group_rule" => {"security_group_id" => security_group_id, "direction" => direction}} desired_options = [ :port_range_min, :port_range_max, :protocol, :ethertype, :remote_group_id, :remote_ip_prefix, :tenant_id ] selected_options = desired_options.select { |o| options[o] } selected_options.each { |key| data["security_group_rule"][key] = options[key] } request( :body => Fog::JSON.encode(data), :expects => 201, :method => "POST", :path => "security-group-rules" ) end end class Mock def create_security_group_rule(security_group_id, direction, options = {}) response = Excon::Response.new data = { "id" => Fog::UUID.uuid, "remote_group_id" => options[:remote_group_id], "direction" => direction, "remote_ip_prefix" => options[:remote_ip_prefix], "protocol" => options[:protocol], "ethertype" => options[:ethertype] || "IPv4", "tenant_id" => options[:tenant_id] || Fog::Mock.random_numbers(14).to_s, "port_range_max" => options[:port_range_max], "port_range_min" => options[:port_range_min], "security_group_id" => security_group_id } self.data[:security_group_rules][data["id"]] = data response.status = 201 response.body = {"security_group_rule" => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_subnet.rb000066400000000000000000000033671476630434000263220ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_subnet(network_id, cidr, ip_version, options = {}) data = { 'subnet' => { 'network_id' => network_id, 'cidr' => cidr, 'ip_version' => ip_version } } vanilla_options = [:name, :gateway_ip, :allocation_pools, :dns_nameservers, :host_routes, :enable_dhcp, :tenant_id] vanilla_options.select { |o| options.key?(o) }.each do |key| data['subnet'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'subnets' ) end end class Mock def create_subnet(network_id, cidr, ip_version, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'network_id' => network_id, 'cidr' => cidr, 'ip_version' => ip_version, 'gateway_ip' => options[:gateway_ip], 'allocation_pools' => options[:allocation_pools], 'dns_nameservers' => options[:dns_nameservers], 'host_routes' => options[:host_routes], 'enable_dhcp' => options[:enable_dhcp], 'tenant_id' => options[:tenant_id] } self.data[:subnets][data['id']] = data response.body = {'subnet' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_subnet_pool.rb000066400000000000000000000040031476630434000273370ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_subnet_pool(name, prefixes, options = {}) data = { 'subnetpool' => { 'name' => name, 'prefixes' => prefixes } } vanilla_options = [:description, :address_scope_id, :shared, :min_prefixlen, :max_prefixlen, :default_prefixlen] vanilla_options.select { |o| options.key?(o) }.each do |key| data['subnetpool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'subnetpools' ) end end class Mock def create_subnet_pool(name, prefixes, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => name, 'prefixes' => prefixes, 'description' => options[:description], 'min_prefixlen' => options[:min_prefixlen] || 64, 'max_prefixlen' => options[:max_prefixlen] || 64, 'default_prefixlen' => options[:default_prefixlen] || 64, 'address_scope_id' => options[:address_scope_id], 'default_quota' => options[:default_quota], 'ip_version' => options[:ip_version] || 4, 'shared' => options[:shared].nil? ? false : options[:shared], 'is_default' => options[:is_default].nil? ? false : options[:is_default], 'created_at' => Time.now.to_s, 'updated_at' => Time.now.to_s, 'tenant_id' => Fog::Mock.random_hex(8).to_s } self.data[:subnet_pools][data['id']] = data response.body = {'subnetpool' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/create_vpn_service.rb000066400000000000000000000030161476630434000273340ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def create_vpn_service(subnet_id, router_id, options = {}) data = { 'vpnservice' => { 'subnet_id' => subnet_id, 'router_id' => router_id } } vanilla_options = [:name, :description, :admin_state_up, :tenant_id] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['vpnservice'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [201], :method => 'POST', :path => 'vpn/vpnservices' ) end end class Mock def create_vpn_service(subnet_id, router_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'subnet_id' => subnet_id, 'router_id' => router_id, 'name' => options[:name], 'description' => options[:description], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], 'external_v4_ip' => '1.2.3.4', 'external_v6_ip' => '::1' } self.data[:vpn_services][data['id']] = data response.body = {'vpnservice' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_floating_ip.rb000066400000000000000000000013141476630434000273020ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_floating_ip(floating_ip_id) request( :expects => 204, :method => 'DELETE', :path => "floatingips/#{floating_ip_id}" ) end end class Mock def delete_floating_ip(floating_ip_id) response = Excon::Response.new if list_floating_ips.body['floatingips'].map { |r| r['id'] }.include? floating_ip_id data[:floating_ips].delete(floating_ip_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_ike_policy.rb000066400000000000000000000013151476630434000271370ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_ike_policy(ike_policy_id) request( :expects => 204, :method => 'DELETE', :path => "vpn/ikepolicies/#{ike_policy_id}" ) end end class Mock def delete_ike_policy(ike_policy_id) response = Excon::Response.new if list_ike_policies.body['ikepolicies'].collect { |r| r['id'] }.include? ike_policy_id data[:ike_policies].delete(ike_policy_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_ipsec_policy.rb000066400000000000000000000013431476630434000274730ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_ipsec_policy(ipsec_policy_id) request( :expects => 204, :method => 'DELETE', :path => "vpn/ipsecpolicies/#{ipsec_policy_id}" ) end end class Mock def delete_ipsec_policy(ipsec_policy_id) response = Excon::Response.new if list_ipsec_policies.body['ipsecpolicies'].collect { |r| r['id'] }.include? ipsec_policy_id data[:ipsec_policies].delete(ipsec_policy_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_ipsec_site_connection.rb000066400000000000000000000015701476630434000313610ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_ipsec_site_connection(ipsec_site_connection_id) request( :expects => 204, :method => 'DELETE', :path => "vpn/ipsec-site-connections/#{ipsec_site_connection_id}" ) end end class Mock def delete_ipsec_site_connection(ipsec_site_connection_id) response = Excon::Response.new ip_site_connections = list_ipsec_site_connections.body['ipsec_site_connections'] if ip_site_connections.collect { |r| r['id'] }.include? ipsec_site_connection_id data[:ipsec_site_connections].delete(ipsec_site_connection_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lb_health_monitor.rb000066400000000000000000000013761476630434000305100ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lb_health_monitor(health_monitor_id) request( :expects => 204, :method => 'DELETE', :path => "lb/health_monitors/#{health_monitor_id}" ) end end class Mock def delete_lb_health_monitor(health_monitor_id) response = Excon::Response.new if list_lb_health_monitors.body['health_monitors'].map { |r| r['id'] }.include? health_monitor_id data[:lb_health_monitors].delete(health_monitor_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lb_member.rb000066400000000000000000000012461476630434000267370ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lb_member(member_id) request( :expects => 204, :method => 'DELETE', :path => "lb/members/#{member_id}" ) end end class Mock def delete_lb_member(member_id) response = Excon::Response.new if list_lb_members.body['members'].map { |r| r['id'] }.include? member_id data[:lb_members].delete(member_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lb_pool.rb000066400000000000000000000012201476630434000264310ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lb_pool(pool_id) request( :expects => 204, :method => 'DELETE', :path => "lb/pools/#{pool_id}" ) end end class Mock def delete_lb_pool(pool_id) response = Excon::Response.new if list_lb_pools.body['pools'].map { |r| r['id'] }.include? pool_id data[:lb_pools].delete(pool_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lb_vip.rb000066400000000000000000000012051476630434000262610ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lb_vip(vip_id) request( :expects => 204, :method => 'DELETE', :path => "lb/vips/#{vip_id}" ) end end class Mock def delete_lb_vip(vip_id) response = Excon::Response.new if list_lb_vips.body['vips'].map { |r| r['id'] }.include? vip_id data[:lb_vips].delete(vip_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_healthmonitor.rb000066400000000000000000000014021476630434000310240ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_healthmonitor(healthmonitor_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/healthmonitors/#{healthmonitor_id}" ) end end class Mock def delete_lbaas_healthmonitor(healthmonitor_id) response = Excon::Response.new if list_lbaas_healthmonitors.body['healthmonitors'].map { |r| r['id'] }.include? healthmonitor_id data[:lbaas_healthmonitors].delete(healthmonitor_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_l7policy.rb000066400000000000000000000013171476630434000277160ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_l7policy(l7policy_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/l7policies/#{l7policy_id}" ) end end class Mock def delete_lbaas_l7policy(l7policy_id) response = Excon::Response.new if list_lbaas_l7policies.body['l7policies'].map { |r| r['id'] }.include? l7policy_id data[:lbaas_l7policies].delete(l7policy_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_l7rule.rb000066400000000000000000000013471476630434000273710ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_l7rule(l7policy_id, l7rule_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/l7policies/#{l7policy_id}/rules/#{l7rule_id}" ) end end class Mock def delete_lbaas_l7rule(l7policy_id, l7rule_id) response = Excon::Response.new if list_lbaas_l7rules.body['l7rules'].map { |r| r['id'] }.include? l7rule_id data[:lbaas_l7rules].delete(l7rule_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_listener.rb000066400000000000000000000013131476630434000277750ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_listener(listener_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/listeners/#{listener_id}" ) end end class Mock def delete_lbaas_listener(listener_id) response = Excon::Response.new if list_lbaas_listeners.body['listsners'].map { |r| r['id'] }.include? listener_id data[:lbaas_listeners].delete(listener_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_loadbalancer.rb000066400000000000000000000013671476630434000305700ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_loadbalancer(loadbalancer_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/loadbalancers/#{loadbalancer_id}" ) end end class Mock def delete_lbaas_loadbalancer(loadbalancer_id) response = Excon::Response.new if list_lbaas_loadbalancers.body['loadbalancers'].map { |r| r['id'] }.include? loadbalancer_id data[:lbaas_loadbalancers].delete(loadbalancer_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_pool.rb000066400000000000000000000012311476630434000271200ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_pool(pool_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/pools/#{pool_id}" ) end end class Mock def delete_lbaas_pool(pool_id) response = Excon::Response.new if list_lb_pools.body['pools'].map { |r| r['id'] }.include? pool_id data[:lb_pools].delete(pool_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_lbaas_pool_member.rb000066400000000000000000000013521476630434000304530ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_lbaas_pool_member(pool_id, member_id) request( :expects => 204, :method => 'DELETE', :path => "lbaas/pools/#{pool_id}/members/#{member_id}" ) end end class Mock def delete_lbaas_pool_member(pool_id, member_id) response = Excon::Response.new if list_lbaas_pool_members(pool_id).body['members'].map { |r| r['id'] }.include? member_id data[:members].delete(member_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_network.rb000066400000000000000000000012421476630434000265000ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_network(network_id) request( :expects => 204, :method => 'DELETE', :path => "networks/#{network_id}" ) end end class Mock def delete_network(network_id) response = Excon::Response.new if list_networks.body['networks'].map { |r| r['id'] }.include? network_id data[:networks].delete(network_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_port.rb000066400000000000000000000012011476630434000257660ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_port(port_id) request( :expects => 204, :method => 'DELETE', :path => "ports/#{port_id}" ) end end class Mock def delete_port(port_id) response = Excon::Response.new if list_ports.body['ports'].map { |r| r['id'] }.include? port_id data[:ports].delete(port_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_quota.rb000066400000000000000000000007031476630434000261410ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_quota(tenant_id) request( :expects => 204, :method => 'DELETE', :path => "/quotas/#{tenant_id}" ) end end class Mock def delete_quota(_tenant_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_rbac_policy.rb000066400000000000000000000013261476630434000273000ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_rbac_policy(rbac_policy_id) request( :expects => 204, :method => 'DELETE', :path => "rbac-policies/#{rbac_policy_id}" ) end end class Mock def delete_rbac_policy(rbac_policy_id) response = Excon::Response.new if list_rbac_policies.body['rbac_policies'].collect { |r| r['id'] }.include? rbac_policy_id data[:rbac_policies].delete(rbac_policy_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_router.rb000066400000000000000000000012211476630434000263240ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_router(router_id) request( :expects => 204, :method => 'DELETE', :path => "routers/#{router_id}" ) end end class Mock def delete_router(router_id) response = Excon::Response.new if list_routers.body['routers'].find { |r| r[:id] == router_id } data[:routers].delete(router_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_security_group.rb000066400000000000000000000015231476630434000300740ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Delete a security group # # ==== Parameters # * 'security_group_id'<~String> - UUID of the security group to delete def delete_security_group(security_group_id) request( :expects => 204, :method => 'DELETE', :path => "security-groups/#{security_group_id}" ) end end class Mock def delete_security_group(security_group_id) response = Excon::Response.new if data[:security_groups][security_group_id] data[:security_groups].delete(security_group_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_security_group_rule.rb000066400000000000000000000016241476630434000311250ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Delete a security group rule # # ==== Parameters # * 'security_group_rule_id'<~String> - UUID of the security group rule to delete def delete_security_group_rule(security_group_rule_id) request( :expects => 204, :method => "DELETE", :path => "security-group-rules/#{security_group_rule_id}" ) end end class Mock def delete_security_group_rule(security_group_rule_id) response = Excon::Response.new if data[:security_group_rules][security_group_rule_id] data[:security_group_rules].delete(security_group_rule_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_subnet.rb000066400000000000000000000012271476630434000263120ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_subnet(subnet_id) request( :expects => 204, :method => 'DELETE', :path => "subnets/#{subnet_id}" ) end end class Mock def delete_subnet(subnet_id) response = Excon::Response.new if list_subnets.body['subnets'].map { |r| r['id'] }.include? subnet_id data[:subnets].delete(subnet_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_subnet_pool.rb000066400000000000000000000013141476630434000273400ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_subnet_pool(subnet_pool_id) request( :expects => 204, :method => 'DELETE', :path => "subnetpools/#{subnet_pool_id}" ) end end class Mock def delete_subnet_pool(subnet_pool_id) response = Excon::Response.new if list_subnet_pools.body['subnetpools'].map { |r| r['id'] }.include? subnet_pool_id data[:subnet_pools].delete(subnet_pool_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/delete_vpn_service.rb000066400000000000000000000013241476630434000273330ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def delete_vpn_service(vpn_service_id) request( :expects => 204, :method => 'DELETE', :path => "vpn/vpnservices/#{vpn_service_id}" ) end end class Mock def delete_vpn_service(vpn_service_id) response = Excon::Response.new if list_vpn_services.body['vpnservices'].collect { |r| r['id'] }.include? vpn_service_id data[:vpn_services].delete(vpn_service_id) response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/disassociate_floating_ip.rb000066400000000000000000000026201476630434000305140ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def disassociate_floating_ip(floating_ip_id, options = {}) data = { 'floatingip' => { 'port_id' => nil, } } vanilla_options = [:fixed_ip_address] vanilla_options.reject { |o| options[o].nil? }.each do |key| data['floatingip'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "floatingips/#{floating_ip_id}" ) end end class Mock def disassociate_floating_ip(_floating_ip_id, options = {}) response = Excon::Response.new response.status = 200 data = { 'id' => '00000000-0000-0000-0000-000000000000', 'router_id' => nil, 'tenant_id' => options["tenant_id"], 'floating_network_id' => options["floating_network_id"], 'fixed_ip_address' => nil, 'floating_ip_address' => options["floating_ip_address"], 'port_id' => options["port_id"], } self.data[:floating_ips][data['floating_ip_id']] = data response.body = {'floatingip' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/disassociate_lb_health_monitor.rb000066400000000000000000000014751476630434000317210ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def disassociate_lb_health_monitor(pool_id, health_monitor_id) request( :expects => [204], :method => 'DELETE', :path => "lb/pools/#{pool_id}/health_monitors/#{health_monitor_id}" ) end end class Mock def disassociate_lb_health_monitor(pool_id, health_monitor_id) response = Excon::Response.new if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id } pool['health_monitors'].delete(health_monitor_id) data[:lb_pools][pool_id] = pool response.status = 204 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_extension.rb000066400000000000000000000011571476630434000263450ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_extension(name) request( :expects => [200], :method => 'GET', :path => "extensions/#{name}" ) end end class Mock def get_extension(name) response = Excon::Response.new if data = self.data[:extensions][name] response.status = 200 response.body = {'extension' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_floating_ip.rb000066400000000000000000000022711476630434000266220ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_floating_ip(floating_ip_id) request( :expects => [200], :method => 'GET', :path => "floatingips/#{floating_ip_id}" ) end end class Mock def get_floating_ip(floating_ip_id) response = Excon::Response.new if data = self.data[:floating_ips][floating_ip_id] response.status = 200 response.body = { "floatingip" => { "id" => "00000000-0000-0000-0000-000000000000", # changed # "floating_ip_id" => floating_ip_id, "port_id" => data["port_id"], "tenant_id" => data["tenant_id"], "fixed_ip_address" => data["fixed_ip_address"], "router_id" => "00000000-0000-0000-0000-000000000000", "floating_ip_address" => data["floating_ip_address"], } } response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_ike_policy.rb000066400000000000000000000012361476630434000264560ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_ike_policy(ike_policy_id) request( :expects => [200], :method => 'GET', :path => "vpn/ikepolicies/#{ike_policy_id}" ) end end class Mock def get_ike_policy(ike_policy_id) response = Excon::Response.new if data = self.data[:ike_policies][ike_policy_id] response.status = 200 response.body = {'ikepolicy' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_ipsec_policy.rb000066400000000000000000000012601476630434000270060ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_ipsec_policy(ipsec_policy_id) request( :expects => [200], :method => 'GET', :path => "vpn/ipsecpolicies/#{ipsec_policy_id}" ) end end class Mock def get_ipsec_policy(ipsec_policy_id) response = Excon::Response.new if data = self.data[:ipsec_policies][ipsec_policy_id] response.status = 200 response.body = {'ipsecpolicy' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_ipsec_site_connection.rb000066400000000000000000000014011476630434000306670ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_ipsec_site_connection(ipsec_site_connection_id) request( :expects => [200], :method => 'GET', :path => "vpn/ipsec-site-connections/#{ipsec_site_connection_id}" ) end end class Mock def get_ipsec_site_connection(ipsec_site_connection_id) response = Excon::Response.new if data = self.data[:ipsec_site_connections][ipsec_site_connection_id] response.status = 200 response.body = {'ipsec_site_connection' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lb_health_monitor.rb000066400000000000000000000013101476630434000300110ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lb_health_monitor(health_monitor_id) request( :expects => [200], :method => 'GET', :path => "lb/health_monitors/#{health_monitor_id}" ) end end class Mock def get_lb_health_monitor(health_monitor_id) response = Excon::Response.new if data = self.data[:lb_health_monitors][health_monitor_id] response.status = 200 response.body = {'health_monitor' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lb_member.rb000066400000000000000000000012001476630434000262420ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lb_member(member_id) request( :expects => [200], :method => 'GET', :path => "lb/members/#{member_id}" ) end end class Mock def get_lb_member(member_id) response = Excon::Response.new if data = self.data[:lb_members][member_id] response.status = 200 response.body = {'member' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lb_pool.rb000066400000000000000000000011561476630434000257560ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lb_pool(pool_id) request( :expects => [200], :method => 'GET', :path => "lb/pools/#{pool_id}" ) end end class Mock def get_lb_pool(pool_id) response = Excon::Response.new if data = self.data[:lb_pools][pool_id] response.status = 200 response.body = {'pool' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lb_pool_stats.rb000066400000000000000000000014651476630434000271770ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lb_pool_stats(pool_id) request( :expects => [200], :method => 'GET', :path => "lb/pools/#{pool_id}/stats" ) end end class Mock def get_lb_pool_stats(pool_id) response = Excon::Response.new if data = self.data[:lb_pools][pool_id] stats = {} stats["active_connections"] = 0 stats["bytes_in"] = 0 stats["bytes_out"] = 0 stats["total_connections"] = 0 response.status = 200 response.body = {'stats' => stats} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lb_vip.rb000066400000000000000000000011451476630434000256010ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lb_vip(vip_id) request( :expects => [200], :method => 'GET', :path => "lb/vips/#{vip_id}" ) end end class Mock def get_lb_vip(vip_id) response = Excon::Response.new if data = self.data[:lb_vips][vip_id] response.status = 200 response.body = {'vip' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_healthmonitor.rb000066400000000000000000000013131476630434000303420ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_healthmonitor(healthmonitor_id) request( :expects => [200], :method => 'GET', :path => "lbaas/healthmonitors/#{healthmonitor_id}" ) end end class Mock def get_lbaas_healthmonitor(healthmonitor_id) response = Excon::Response.new if data = self.data[:lbaas_healthmonitors][healthmonitor_id] response.status = 200 response.body = {'healthmonitor' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_l7policy.rb000066400000000000000000000012401476630434000272260ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_l7policy(l7policy_id) request( :expects => [200], :method => 'GET', :path => "lbaas/l7policies/#{l7policy_id}" ) end end class Mock def get_lbaas_l7policy(l7policy_id) response = Excon::Response.new if data = self.data[:lbaas_l7policies][l7policy_id] response.status = 200 response.body = {'l7policy' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_l7rule.rb000066400000000000000000000012741476630434000267050ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_l7rule(l7policy_id, l7rule_id) request( :expects => [200], :method => 'GET', :path => "lbaas/l7policies/#{l7policy_id}/rules/#{l7rule_id}" ) end end class Mock def get_lbaas_l7rule(l7policy_id, l7rule_id) response = Excon::Response.new if data = self.data[:lbaas_l7rules][l7rule_id] response.status = 200 response.body = {'rule' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_listener.rb000066400000000000000000000012361476630434000273160ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_listener(listener_id) request( :expects => [200], :method => 'GET', :path => "lbaas/listeners/#{listener_id}" ) end end class Mock def get_lbaas_listener(listener_id) response = Excon::Response.new if data = self.data[:lbaas_listeners][listener_id] response.status = 200 response.body = {'listener' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_loadbalancer.rb000066400000000000000000000013261476630434000301000ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_loadbalancer(loadbalancer_id) request( :expects => [200], :method => 'GET', :path => "lbaas/loadbalancers/#{loadbalancer_id}" ) end end class Mock def get_lbaas_loadbalancer(loadbalancer_id) response = Excon::Response.new if data = self.data[:lbaas_loadbalancer][loadbalancer_id] response.status = 200 response.body = {'loadbalancer' => data[:lbaas_loadbalancer]} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_pool.rb000066400000000000000000000011721476630434000264410ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_pool(pool_id) request( :expects => [200], :method => 'GET', :path => "lbaas/pools/#{pool_id}" ) end end class Mock def get_lbaas_pool(pool_id) response = Excon::Response.new if data = self.data[:lbaas_pools][pool_id] response.status = 200 response.body = {'pool' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_lbaas_pool_member.rb000066400000000000000000000012761476630434000277750ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_lbaas_pool_member(pool_id, member_id) request( :expects => [200], :method => 'GET', :path => "lbaas/pools/#{pool_id}/members/#{member_id}" ) end end class Mock def get_lbaas_pool_member(pool_id, member_id) response = Excon::Response.new if data = self.data[:lbaas_pool_members][member_id] response.status = 200 response.body = {'member' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_network.rb000066400000000000000000000011751476630434000260220ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_network(network_id) request( :expects => [200], :method => 'GET', :path => "networks/#{network_id}" ) end end class Mock def get_network(network_id) response = Excon::Response.new if data = self.data[:networks][network_id] response.status = 200 response.body = {'network' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_network_ip_availability.rb000066400000000000000000000013111476630434000312340ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_network_ip_availability(network_id) request( :expects => [200], :method => 'GET', :path => "network-ip-availabilities/#{network_id}" ) end end class Mock def get_network_ip_availability(network_id) response = Excon::Response.new if data = self.data[:network_ip_availabilities].first response.status = 200 response.body = {'network_ip_availability' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_port.rb000066400000000000000000000033601476630434000253130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_port(port_id) request( :expects => [200], :method => 'GET', :path => "ports/#{port_id}" ) end end class Mock def get_port(port_id) response = Excon::Response.new if data = self.data[:ports][port_id] response.status = 200 response.body = { 'port' => { 'id' => '5c81d975-5fea-4674-9c1f-b8aa10bf9a79', 'name' => 'port_1', 'network_id' => 'e624a36d-762b-481f-9b50-4154ceb78bbb', 'fixed_ips' => [ { 'ip_address' => '10.2.2.2', 'subnet_id' => '2e4ec6a4-0150-47f5-8523-e899ac03026e', } ], 'mac_address' => 'fa:16:3e:62:91:7f', 'status' => 'ACTIVE', 'admin_state_up' => true, 'device_id' => 'dhcp724fc160-2b2e-597e-b9ed-7f65313cd73f-e624a36d-762b-481f-9b50-4154ceb78bbb', 'device_owner' => 'network:dhcp', 'tenant_id' => 'f8b26a6032bc47718a7702233ac708b9', 'security_groups' => ['3ddde803-e550-4737-b5de-0862401dc834'], 'allowed_address_pairs' => [ 'ip_address' => '10.1.1.1', 'mac_address' => 'fa:16:3e:3d:2a:cc' ] } } response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_quota.rb000066400000000000000000000010401476630434000254510ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_quota(tenant_id) request( :expects => 200, :method => 'GET', :path => "/quotas/#{tenant_id}" ) end end class Mock def get_quota(_tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota' => (data[:quota_updated] || data[:quota]) } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_quotas.rb000066400000000000000000000007461476630434000256500ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_quotas request( :expects => 200, :method => 'GET', :path => "/quotas" ) end end class Mock def get_quotas response = Excon::Response.new response.status = 200 response.body = { 'quotas' => data[:quotas] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_rbac_policy.rb000066400000000000000000000012451476630434000266150ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_rbac_policy(rbac_policy_id) request( :expects => [200], :method => 'GET', :path => "rbac-policies/#{rbac_policy_id}" ) end end class Mock def get_rbac_policy(rbac_policy_id) response = Excon::Response.new if data = self.data[:rbac_policies][rbac_policy_id] response.status = 200 response.body = {'rbac_policy' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_router.rb000066400000000000000000000012611476630434000256450ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_router(router_id) request( :expects => [200], :method => 'GET', :path => "routers/#{router_id}" ) end end class Mock def get_router(router_id) response = Excon::Response.new if data = (self.data[:routers].find { |id, _value| id == router_id }) response.status = 200 response.body = { 'router' => data[1], } response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_security_group.rb000066400000000000000000000042761476630434000274210ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Get details about a security group # # ==== Parameters # * 'security_group_id'<~String> - UUID of the security group # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_group'<~Array>: # * 'id'<~String> - UUID of the security group # * 'name'<~String> - Name of the security group # * 'description'<~String> - Description of the security group # * 'tenant_id'<~String> - Tenant id that owns the security group # * 'security_group_rules'<~Array>: - Array of security group rules # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def get_security_group(security_group_id) request( :expects => 200, :method => "GET", :path => "security-groups/#{security_group_id}" ) end end class Mock def get_security_group(security_group_id) response = Excon::Response.new if sec_group = data[:security_groups][security_group_id] response.status = 200 response.body = {"security_group" => sec_group} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_security_group_rule.rb000066400000000000000000000036231476630434000304430ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Get details about a security group rule # # ==== Parameters # * 'security_group_rule_id'<~String> - UUID of the security group rule # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_group_rule'<~Hash>: # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def get_security_group_rule(security_group_rule_id) request( :expects => 200, :method => "GET", :path => "security-group-rules/#{security_group_rule_id}" ) end end class Mock def get_security_group_rule(security_group_rule_id) response = Excon::Response.new if sec_group_rule = data[:security_group_rules][security_group_rule_id] response.status = 200 response.body = {"security_group_rule" => sec_group_rule} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_subnet.rb000066400000000000000000000025771476630434000256400ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_subnet(subnet_id) request( :expects => [200], :method => 'GET', :path => "subnets/#{subnet_id}" ) end end class Mock def get_subnet(subnet_id) response = Excon::Response.new if data = self.data[:subnets][subnet_id] response.status = 200 response.body = { "subnet" => { "id" => "2e4ec6a4-0150-47f5-8523-e899ac03026e", "name" => "subnet_1", "network_id" => "e624a36d-762b-481f-9b50-4154ceb78bbb", "cidr" => "10.2.2.0/24", "ip_version" => 4, "gateway_ip" => "10.2.2.1", "allocation_pools" => [ { "start" => "10.2.2.2", "end" => "10.2.2.254" } ], "dns_nameservers" => [], "host_routes" => [], "enable_dhcp" => true, "tenant_id" => "f8b26a6032bc47718a7702233ac708b9", } } response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_subnet_pool.rb000066400000000000000000000012601476630434000266550ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_subnet_pool(subnet_pool_id) request( :expects => [200], :method => 'GET', :path => "subnetpools/#{subnet_pool_id}" ) end end class Mock def get_subnet_pool(subnet_pool_id) data = self.data[:subnet_pools][subnet_pool_id] if data response = Excon::Response.new response.status = 200 response.body = {'subnetpool' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/get_vpn_service.rb000066400000000000000000000012451476630434000266520ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def get_vpn_service(vpn_service_id) request( :expects => [200], :method => 'GET', :path => "vpn/vpnservices/#{vpn_service_id}" ) end end class Mock def get_vpn_service(vpn_service_id) response = Excon::Response.new if data = self.data[:vpn_services][vpn_service_id] response.status = 200 response.body = {'vpnservice' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_extensions.rb000066400000000000000000000010201476630434000267110ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_extensions(filters = {}) request( :expects => 200, :method => 'GET', :path => 'extensions', :query => filters ) end end class Mock def list_extensions(_filters = {}) Excon::Response.new( :body => {'extensions' => data[:extensions].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_floating_ips.rb000066400000000000000000000010301476630434000271710ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_floating_ips(filters = {}) request( :expects => 200, :method => 'GET', :path => 'floatingips', :query => filters ) end end class Mock def list_floating_ips(_filters = {}) Excon::Response.new( :body => {'floatingips' => data[:floating_ips].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_ike_policies.rb000066400000000000000000000010201476630434000271510ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_ike_policies(filters = {}) request( :expects => 200, :method => 'GET', :path => 'vpn/ikepolicies', :query => filters ) end end class Mock def list_ike_policies(*) Excon::Response.new( :body => {'ikepolicies' => data[:ike_policies].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_ipsec_policies.rb000066400000000000000000000010321476630434000275070ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_ipsec_policies(filters = {}) request( :expects => 200, :method => 'GET', :path => 'vpn/ipsecpolicies', :query => filters ) end end class Mock def list_ipsec_policies(*) Excon::Response.new( :body => {'ipsecpolicies' => data[:ipsec_policies].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_ipsec_site_connections.rb000066400000000000000000000011041476630434000312460ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_ipsec_site_connections(filters = {}) request( :expects => 200, :method => 'GET', :path => 'vpn/ipsec-site-connections', :query => filters ) end end class Mock def list_ipsec_site_connections(*) Excon::Response.new( :body => {'ipsec_site_connections' => data[:ipsec_site_connections].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lb_health_monitors.rb000066400000000000000000000010651476630434000303770ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lb_health_monitors(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lb/health_monitors', :query => filters ) end end class Mock def list_lb_health_monitors(_filters = {}) Excon::Response.new( :body => {'health_monitors' => data[:lb_health_monitors].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lb_members.rb000066400000000000000000000010151476630434000266250ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lb_members(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lb/members', :query => filters ) end end class Mock def list_lb_members(_filters = {}) Excon::Response.new( :body => {'members' => data[:lb_members].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lb_pools.rb000066400000000000000000000010031476630434000263240ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lb_pools(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lb/pools', :query => filters ) end end class Mock def list_lb_pools(_filters = {}) Excon::Response.new( :body => {'pools' => data[:lb_pools].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lb_vips.rb000066400000000000000000000007761476630434000261710ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lb_vips(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lb/vips', :query => filters ) end end class Mock def list_lb_vips(_filters = {}) Excon::Response.new( :body => {'vips' => data[:lb_vips].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_healthmonitors.rb000066400000000000000000000010741476630434000307250ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_healthmonitors(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lbaas/healthmonitors', :query => filters ) end end class Mock def list_lbaas_healthmonitors(_filters = {}) Excon::Response.new( :body => {'healthmonitors' => data[:lbaas_healthmonitors].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_l7policies.rb000066400000000000000000000010631476630434000277350ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_l7policies(filters = {}) request( :expects => 200, :method => 'GET', :path => "lbaas/l7policies", :query => filters ) end end class Mock def list_lbaas_l7policies(filters = {}) Excon::Response.new( :body => {'l7policies' => data[:lbaas_l7policies].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_l7rules.rb000066400000000000000000000011241476630434000272560ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_l7rules(l7policy_id, filters = {}) request( :expects => 200, :method => 'GET', :path => "lbaas/l7policies/#{l7policy_id}/rules", :query => filters ) end end class Mock def list_lbaas_l7rules(l7policy_id, filters = {}) Excon::Response.new( :body => {'rules' => data[:lbaas_l7rules].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_listeners.rb000066400000000000000000000010471476630434000276750ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_listeners(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lbaas/listeners', :query => filters ) end end class Mock def list_lbaas_listeners(_filters = {}) Excon::Response.new( :body => {'listeners' => data[:lbaas_listeners].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_loadbalancers.rb000066400000000000000000000010621476630434000304540ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_loadbalancers(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lbaas/loadbalancers', :query => filters ) end end class Mock def list_lbaas_loadbalancers(_filters = {}) Excon::Response.new( :body => {'loadbalancers' => [data[:lbaas_loadbalancer]]}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_pool_members.rb000066400000000000000000000011141476630434000303430ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_pool_members(pool_id, filters = {}) request( :expects => 200, :method => 'GET', :path => "lbaas/pools/#{pool_id}/members", :query => filters ) end end class Mock def list_lbaas_pool_members(pool_id, _filters = {}) Excon::Response.new( :body => {'members' => data[:lbaas_pool_members].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_lbaas_pools.rb000066400000000000000000000010171476630434000270160ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_lbaas_pools(filters = {}) request( :expects => 200, :method => 'GET', :path => 'lbaas/pools', :query => filters ) end end class Mock def list_lbaas_pools(_filters = {}) Excon::Response.new( :body => {'pools' => data[:lbaas_pools].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_network_ip_availabilities.rb000066400000000000000000000012451476630434000317460ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_network_ip_availabilities request( :expects => [200], :method => 'GET', :path => "network-ip-availabilities" ) end end class Mock def list_network_ip_availabilities response = Excon::Response.new if data = self.data[:network_ip_availabilities] response.status = 200 response.body = {'network_ip_availabilities' => data} response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_networks.rb000066400000000000000000000010061476630434000263720ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_networks(filters = {}) request( :expects => 200, :method => 'GET', :path => 'networks', :query => filters ) end end class Mock def list_networks(_filters = {}) Excon::Response.new( :body => {'networks' => data[:networks].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_ports.rb000066400000000000000000000007671476630434000257020ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_ports(filters = {}) request( :expects => 200, :method => 'GET', :path => 'ports', :query => filters ) end end class Mock def list_ports(_filters = {}) Excon::Response.new( :body => {'ports' => data[:ports].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_rbac_policies.rb000066400000000000000000000010231476630434000273130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_rbac_policies(filters = {}) request( :expects => 200, :method => 'GET', :path => 'rbac-policies', :query => filters ) end end class Mock def list_rbac_policies(*) Excon::Response.new( :body => {'rbac_policies' => data[:rbac_policies].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_routers.rb000066400000000000000000000010011476630434000262140ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_routers(filters = {}) request( :expects => 200, :method => 'GET', :path => 'routers', :query => filters ) end end class Mock def list_routers(_filters = {}) Excon::Response.new( :body => {'routers' => data[:routers].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_security_group_rules.rb000066400000000000000000000034561476630434000310260ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # List all security group rules # # ==== Parameters # * options<~Hash>: # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_group_rules'<~Array>: # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def list_security_group_rules(options = {}) request( :expects => 200, :method => 'GET', :path => 'security-group-rules', :query => options ) end end class Mock def list_security_group_rules(_options = {}) response = Excon::Response.new sec_group_rules = [] sec_group_rules = data[:security_group_rules].values unless data[:security_group_rules].nil? response.status = 200 response.body = {'security_group_rules' => sec_group_rules} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_security_groups.rb000066400000000000000000000041541476630434000277730ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # List all security groups # # ==== Parameters # * options<~Hash>: # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'security_groups'<~Array>: # * 'id'<~String> - UUID of the security group # * 'name'<~String> - Name of the security group # * 'description'<~String> - Description of the security group # * 'tenant_id'<~String> - Tenant id that owns the security group # * 'security_group_rules'<~Array>: - Array of security group rules # * 'id'<~String> - UUID of the security group rule # * 'direction'<~String> - Direction of traffic, must be in ['ingress', 'egress'] # * 'port_range_min'<~Integer> - Start port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'port_range_max'<~Integer> - End port for rule i.e. 22 (or -1 for ICMP wildcard) # * 'protocol'<~String> - IP protocol for rule, must be in ['tcp', 'udp', 'icmp'] # * 'ethertype'<~String> - Type of ethernet support, must be in ['IPv4', 'IPv6'] # * 'security_group_id'<~String> - UUID of the parent security group # * 'remote_group_id'<~String> - UUID of the remote security group # * 'remote_ip_prefix'<~String> - IP cidr range address i.e. '0.0.0.0/0' # * 'tenant_id'<~String> - Tenant id that owns the security group rule def list_security_groups(options = {}) request( :expects => 200, :method => 'GET', :path => 'security-groups', :query => options ) end end class Mock def list_security_groups(_options = {}) response = Excon::Response.new sec_groups = [] sec_groups = data[:security_groups].values unless data[:security_groups].nil? response.status = 200 response.body = {'security_groups' => sec_groups} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_subnet_pools.rb000066400000000000000000000010301476630434000272270ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_subnet_pools(filters = {}) request( :expects => 200, :method => 'GET', :path => 'subnetpools', :query => filters ) end end class Mock def list_subnet_pools(_filters = {}) Excon::Response.new( :body => {'subnetpools' => data[:subnet_pools].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_subnets.rb000066400000000000000000000010011476630434000261740ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_subnets(filters = {}) request( :expects => 200, :method => 'GET', :path => 'subnets', :query => filters ) end end class Mock def list_subnets(_filters = {}) Excon::Response.new( :body => {'subnets' => data[:subnets].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/list_vpn_services.rb000066400000000000000000000010201476630434000272200ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def list_vpn_services(filters = {}) request( :expects => 200, :method => 'GET', :path => 'vpn/vpnservices', :query => filters ) end end class Mock def list_vpn_services(*) Excon::Response.new( :body => {'vpnservices' => data[:vpn_services].values}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/remove_router_interface.rb000066400000000000000000000015421476630434000304050ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def remove_router_interface(router_id, subnet_id, _options = {}) data = { 'subnet_id' => subnet_id, } request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "routers/#{router_id}/remove_router_interface" ) end end class Mock def remove_router_interface(_router_id, _subnet_id, _options = {}) response = Excon::Response.new response.status = 201 data = { 'subnet_id' => 'a2f1f29d-571b-4533-907f-5803ab96ead1' } self.data[:routers][data['router_id']] = data response.body = {'router' => data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/set_tenant.rb000066400000000000000000000005201476630434000256270ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end class Mock def set_tenant(_tenant) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_ike_policy.rb000066400000000000000000000035561476630434000271700ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_ike_policy(ike_policy_id, options = {}) data = {'ikepolicy' => {}} vanilla_options = [:name, :description, :tenant_id, :auth_algorithm, :encryption_algorithm, :pfs, :phase1_negotiation_mode, :lifetime, :ike_version] vanilla_options.select { |o| options.key?(o) }.each do |key| data['ikepolicy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "vpn/ikepolicies/#{ike_policy_id}" ) end end class Mock def update_ike_policy(ike_policy_id, options = {}) response = Excon::Response.new if ike_policy = list_ike_policies.body['ikepolicies'].detect { |instance| instance['id'] == ike_policy_id } ike_policy['name'] = options[:name] ike_policy['description'] = options[:description] ike_policy['tenant_id'] = options[:tenant_id] ike_policy['auth_algorithm'] = options[:auth_algorithm] ike_policy['encryption_algorithm'] = options[:encryption_algorithm] ike_policy['pfs'] = options[:pfs] ike_policy['phase1_negotiation_mode'] = options[:phase1_negotiation_mode] ike_policy['lifetime'] = options[:lifetime] ike_policy['ike_version'] = options[:ike_version] response.body = {'ikepolicy' => ike_policy} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_ipsec_policy.rb000066400000000000000000000037051476630434000275170ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_ipsec_policy(ipsec_policy_id, options = {}) data = {'ipsecpolicy' => {}} vanilla_options = [:name, :description, :tenant_id, :auth_algorithm, :encryption_algorithm, :pfs, :transform_protocol, :encapsulation_mode, :lifetime, :ipsec_version] vanilla_options.select { |o| options.key?(o) }.each do |key| data['ipsecpolicy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "vpn/ipsecpolicies/#{ipsec_policy_id}" ) end end class Mock def update_ipsec_policy(ipsec_policy_id, options = {}) response = Excon::Response.new ipsec_policy = list_ipsec_policies.body['ipsecpolicies'].detect do |instance| instance['id'] == ipsec_policy_id end if ipsec_policy ipsec_policy['name'] = options[:name] ipsec_policy['description'] = options[:description] ipsec_policy['tenant_id'] = options[:tenant_id] ipsec_policy['auth_algorithm'] = options[:auth_algorithm] ipsec_policy['encryption_algorithm'] = options[:encryption_algorithm] ipsec_policy['pfs'] = options[:pfs] ipsec_policy['transform_protocol'] = options[:transform_protocol] ipsec_policy['encapsulation_mode'] = options[:encapsulation_mode] ipsec_policy['lifetime'] = options[:lifetime] response.body = {'ipsecpolicy' => ipsec_policy} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_ipsec_site_connection.rb000066400000000000000000000056571476630434000314130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_ipsec_site_connection(ipsec_site_connection_id, options = {}) data = {'ipsec_site_connection' => {}} vanilla_options = [:name, :description, :tenant_id, :peer_address, :peer_id, :peer_cidrs, :psk, :mtu, :dpd, :initiator, :admin_state_up, :ikepolicy_id, :ipsecpolicy_id, :vpnservice_id] vanilla_options.select { |o| options.key?(o) }.each do |key| data['ipsec_site_connection'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "vpn/ipsec-site-connections/#{ipsec_site_connection_id}" ) end end class Mock def update_ipsec_site_connection(ipsec_site_connection_id, options = {}) response = Excon::Response.new ipsec_site_connection = list_ipsec_site_connections.body['ipsec_site_connections'].detect do |instance| instance['id'] == ipsec_site_connection_id end if ipsec_site_connection ipsec_site_connection['name'] = options[:name] ipsec_site_connection['description'] = options[:description] ipsec_site_connection['tenant_id'] = options[:tenant_id] ipsec_site_connection['status'] = 'ACTIVE' ipsec_site_connection['admin_state_up'] = options[:admin_state_up] ipsec_site_connection['psk'] = options[:psk] ipsec_site_connection['initiator'] = options[:initiator] ipsec_site_connection['auth_mode'] = "psk" ipsec_site_connection['peer_cidrs'] = options[:peer_cidrs] ipsec_site_connection['mtu'] = options[:mtu] ipsec_site_connection['peer_ep_group_id'] = Fog::Mock.random_numbers(6).to_s ipsec_site_connection['ikepolicy_id'] = options[:ikepolicy_id] || 'ike' ipsec_site_connection['vpnservice_id'] = options[:vpnservice_id] || 'vpn' ipsec_site_connection['dpd'] = options[:dpd] ipsec_site_connection['route_mode'] = "static" ipsec_site_connection['ipsecpolicy_id'] = options[:ipsecpolicy_id] || 'ipsec' ipsec_site_connection['local_ep_group_id'] = Fog::Mock.random_numbers(6).to_s ipsec_site_connection['peer_address'] = options[:peer_address] ipsec_site_connection['peer_id'] = options[:peer_id] response.body = {'ipsec_site_connection' => ipsec_site_connection} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lb_health_monitor.rb000066400000000000000000000031401476630434000305170ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lb_health_monitor(health_monitor_id, options = {}) data = {'health_monitor' => {}} vanilla_options = [:delay, :timeout, :max_retries, :http_method, :url_path, :expected_codes, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['health_monitor'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lb/health_monitors/#{health_monitor_id}" ) end end class Mock def update_lb_health_monitor(health_monitor_id, options = {}) response = Excon::Response.new if health_monitor = list_lb_health_monitors.body['health_monitors'].find { |_| _['id'] == health_monitor_id } health_monitor['delay'] = options[:delay] health_monitor['timeout'] = options[:timeout] health_monitor['max_retries'] = options[:max_retries] health_monitor['http_method'] = options[:http_method] health_monitor['url_path'] = options[:url_path] health_monitor['expected_codes'] = options[:expected_codes] health_monitor['admin_state_up'] = options[:admin_state_up] response.body = {'health_monitor' => health_monitor} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lb_member.rb000066400000000000000000000022161476630434000267550ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lb_member(member_id, options = {}) data = {'member' => {}} vanilla_options = [:pool_id, :weight, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['member'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lb/members/#{member_id}" ) end end class Mock def update_lb_member(member_id, options = {}) response = Excon::Response.new if member = list_lb_members.body['members'].find { |_| _['id'] == member_id } member['pool_id'] = options[:pool_id] member['weight'] = options[:weight] member['admin_state_up'] = options[:admin_state_up] response.body = {'member' => member} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lb_pool.rb000066400000000000000000000022711476630434000264600ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lb_pool(pool_id, options = {}) data = {'pool' => {}} vanilla_options = [:name, :description, :lb_method, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['pool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lb/pools/#{pool_id}" ) end end class Mock def update_lb_pool(pool_id, options = {}) response = Excon::Response.new if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id } pool['name'] = options[:name] pool['description'] = options[:description] pool['lb_method'] = options[:lb_method] pool['admin_state_up'] = options[:admin_state_up] response.body = {'pool' => pool} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lb_vip.rb000066400000000000000000000025471476630434000263130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lb_vip(vip_id, options = {}) data = {'vip' => {}} vanilla_options = [:pool_id, :name, :description, :session_persistence, :connection_limit, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['vip'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lb/vips/#{vip_id}" ) end end class Mock def update_lb_vip(vip_id, options = {}) response = Excon::Response.new if vip = list_lb_vips.body['vips'].find { |_| _['id'] == vip_id } vip['pool_id'] = options[:pool_id] vip['name'] = options[:name] vip['description'] = options[:description] vip['session_persistence'] = options[:session_persistence] vip['connection_limit'] = options[:connection_limit] vip['admin_state_up'] = options[:admin_state_up] response.body = {'vip' => vip} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_healthmonitor.rb000066400000000000000000000031371476630434000310530ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_healthmonitor(healthmonitor_id, options = {}) data = {'healthmonitor' => {}} vanilla_options = [:name, :delay, :timeout, :max_retries, :http_method, :url_path, :expected_codes, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['healthmonitor'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lbaas/healthmonitors/#{healthmonitor_id}" ) end end class Mock def update_lbaas_healthmonitor(healthmonitor_id, options = {}) response = Excon::Response.new if healthmonitor = list_lbaas_health_monitors.body['healthmonitors'].find { |_| _['id'] == healthmonitor_id } healthmonitor['delay'] = options[:delay] healthmonitor['timeout'] = options[:timeout] healthmonitor['max_retries'] = options[:max_retries] healthmonitor['http_method'] = options[:http_method] healthmonitor['url_path'] = options[:url_path] healthmonitor['expected_codes'] = options[:expected_codes] healthmonitor['admin_state_up'] = options[:admin_state_up] response.body = {'healthmonitor' => healthmonitor} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_l7policy.rb000066400000000000000000000026301476630434000277350ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_l7policy(l7policy_id, options = {}) data = {'l7policy' => {}} vanilla_options = [:action, :name, :description, :redirect_pool_id, :redirect_url, :position] vanilla_options.select { |o| options.key?(o) }.each do |key| data['l7policy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "lbaas/l7policies/#{l7policy_id}" ) end end class Mock def update_lbaas_l7rule(l7policy_id, options = {}) response = Excon::Response.new if l7policy = list_l7policies.body['l7policies'].find { |_| _['id'] == l7policy_id } l7policy['action'] = options[:action] l7policy['name'] = options[:name] l7policy['description'] = options[:description] l7policy['redirect_pool_id'] = options[:redirect_pool_id] l7policy['redirect_url'] = options[:redirect_url] l7policy['position'] = options[:position] response.body = {'l7policy' => l7policy} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_l7rule.rb000066400000000000000000000024651476630434000274130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_l7rule(l7policy_id, l7rule_id, options = {}) data = { 'rule' => {} } vanilla_options = [:type, :compare_type, :key, :value, :invert] vanilla_options.select { |o| options.key?(o) }.each do |key| data['rule'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "lbaas/l7policies/#{l7policy_id}/rules/#{l7rule_id}" ) end end class Mock def update_lbaas_l7rule(l7policy_id, l7rule_id, options = {}) response = Excon::Response.new if l7rule = list_l7rules.body['l7rules'].find { |_| _['id'] == l7rule_id } l7rule['type'] = options[:type] l7rule['compare_type'] = options[:compare_type] l7rule['key'] = options[:key] l7rule['value'] = options[:value] l7rule['invert'] = options[:invert] response.body = {'rule' => l7rule} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_listener.rb000066400000000000000000000030421476630434000300160ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_listener(listener_id, options = {}) data = { 'listener' => {} } vanilla_options = [:name, :description, :connection_limit, :default_tls_container_ref, :sni_container_refs, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['listener'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lbaas/listeners/#{listener_id}" ) end end class Mock def update_lbaas_listener(listener_id, options = {}) response = Excon::Response.new if listener = list_lbaas_listeners.body['listeners'].find { |_| _['id'] == listener_id } listener['name'] = options[:name] listener['description'] = options[:description] listener['connection_limit'] = options[:connection_limit] listener['default_tls_container_ref'] = options[:default_tls_container_ref] listener['sni_container_refs'] = options[:sni_container_refs] listener['admin_state_up'] = options[:admin_state_up] response.body = {'listener' => listener} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_loadbalancer.rb000066400000000000000000000024551476630434000306070ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_loadbalancer(loadbalancer_id, options = {}) data = { 'loadbalancer' => {} } vanilla_options = [:name, :description, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['loadbalancer'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lbaas/loadbalancers/#{loadbalancer_id}" ) end end class Mock def update_lbaas_loadbalancer(loadbalancer_id, options = {}) response = Excon::Response.new if loadbalancer = list_lbaas_loadbalancers.body['loadbalancers'].find { |_| _['id'] == loadbalancer_id } loadbalancer['name'] = options[:name] loadbalancer['description'] = options[:description] loadbalancer['admin_state_up'] = options[:admin_state_up] response.body = {'loadbalancer' => loadbalancer} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_pool.rb000066400000000000000000000023411476630434000271430ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_pool(pool_id, options = {}) data = {'pool' => {}} vanilla_options = [:name, :description, :lb_algorithm, :session_persistence, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['pool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lbaas/pools/#{pool_id}" ) end end class Mock def update_lbaas_pool(pool_id, options = {}) response = Excon::Response.new if pool = list_lbaas_pools.body['pools'].find { |_| _['id'] == pool_id } pool['name'] = options[:name] pool['description'] = options[:description] pool['lb_algorithm'] = options[:lb_algorithm] pool['admin_state_up'] = options[:admin_state_up] response.body = {'pool' => pool} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_lbaas_pool_member.rb000066400000000000000000000023111476630434000304670ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_lbaas_pool_member(pool_id, member_id, options = {}) data = {'member' => {}} vanilla_options = [:weight, :admin_state_up, :name] vanilla_options.select { |o| options.key?(o) }.each do |key| data['member'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "lbaas/pools/#{pool_id}/members/#{member_id}" ) end end class Mock def update_lbaas_pool_member(pool_id, member_id, options = {}) response = Excon::Response.new if member = list_lbaas_pool_members.body['members'].find { |_| _['id'] == member_id } member['pool_id'] = options[:pool_id] member['weight'] = options[:weight] member['admin_state_up'] = options[:admin_state_up] response.body = {'member' => member} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_network.rb000066400000000000000000000031261476630434000265230ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Not all options can be updated UPDATE_OPTIONS = [ :name, :shared, :admin_state_up, :qos_policy_id, :port_security_enabled ].freeze # Not all extra options can be updated UPDATE_EXTENTED_OPTIONS = [ :router_external ].freeze def self.update(options) data = {} UPDATE_OPTIONS.select { |o| options.key?(o) }.each do |key| data[key.to_s] = options[key] end UPDATE_EXTENTED_OPTIONS.reject { |o| options[o].nil? }.each do |key| aliased_key = ALIASES[key] || key data[aliased_key] = options[key] end data end def update_network(network_id, options = {}) data = {'network' => self.class.update(options)} request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "networks/#{network_id}.json" ) end end class Mock def update_network(network_id, options = {}) response = Excon::Response.new if network = list_networks.body['networks'].find { |_| _['id'] == network_id } network.merge!(Fog::OpenStack::Network::Real.update(options)) response.body = {'network' => network} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_port.rb000066400000000000000000000030031476630434000260100ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_port(port_id, options = {}) data = {'port' => {}} vanilla_options = [:name, :fixed_ips, :admin_state_up, :device_owner, :device_id, :security_groups, :allowed_address_pairs] vanilla_options.select { |o| options.key?(o) }.each do |key| data['port'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "ports/#{port_id}.json" ) end end class Mock def update_port(port_id, options = {}) response = Excon::Response.new if port = list_ports.body['ports'].find { |_| _['id'] == port_id } port['name'] = options[:name] port['fixed_ips'] = options[:fixed_ips] || [] port['admin_state_up'] = options[:admin_state_up] port['device_owner'] = options[:device_owner] port['device_id'] = options[:device_id] port['security_groups'] = options[:security_groups] || [] port['allowed_address_pairs'] = options[:allowed_address_pairs] || [] response.body = {'port' => port} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_quota.rb000066400000000000000000000012231476630434000261570ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_quota(tenant_id, options = {}) request( :body => Fog::JSON.encode('quota' => options), :expects => 200, :method => 'PUT', :path => "/quotas/#{tenant_id}" ) end end class Mock def update_quota(_tenant_id, options = {}) data[:quota_updated] = data[:quota].merge options response = Excon::Response.new response.status = 200 response.body = {'quota' => data[:quota_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_rbac_policy.rb000066400000000000000000000022111476630434000273120ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_rbac_policy(rbac_policy_id, options = {}) data = {'rbac_policy' => {}} vanilla_options = [:target_tenant] vanilla_options.select { |o| options.key?(o) }.each do |key| data['rbac_policy'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "rbac-policies/#{rbac_policy_id}" ) end end class Mock def update_rbac_policy(rbac_policy_id, options = {}) response = Excon::Response.new rbac_policy = list_rbac_policies.body['rbac_policies'].detect do |instance| instance['id'] == rbac_policy_id end if rbac_policy rbac_policy['target_tenant'] = options[:target_tenant] response.body = {'rbac_policy' => rbac_policy} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_router.rb000066400000000000000000000051331476630434000263520ustar00rootroot00000000000000module Fog module OpenStack class Network class Real # Update Router # # Beyond the name and the administrative state, the only # parameter which can be updated with this operation is # the external gateway. # @see http://docs.openstack.org/api/openstack-network/2.0/content/router_update.html def update_router(router_id, options = {}) data = {'router' => {}} [:name, :admin_state_up, :routes].each do |key| data['router'][key] = options[key] if options[key] end # remove this in a future egi = options[:external_gateway_info] if egi if egi.kind_of?(Fog::OpenStack::Network::Network) Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \ Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]" data['router'][:external_gateway_info] = {:network_id => egi.id} elsif egi.kind_of?(Hash) data['router'][:external_gateway_info] = egi else raise ArgumentError, 'Invalid external_gateway_info attribute' end end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "routers/#{router_id}.json" ) end end class Mock def update_router(router_id, options = {}) response = Excon::Response.new router = list_routers.body['routers'].find { |r| r[:id] == router_id } raise Fog::OpenStack::Network::NotFound unless router options.keys.each { |k| router[k] = options[k] } # remove this in a future egi = options[:external_gateway_info] if egi if egi.kind_of?(Fog::OpenStack::Network::Network) Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \ Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]" router[:external_gateway_info] = { :network_id => egi.id } elsif egi.is_a?(Hash) router[:external_gateway_info] = egi else raise ArgumentError.new('Invalid external_gateway_info attribute') end end response.body = {'router' => router} response.status = 200 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_security_group.rb000066400000000000000000000022511476630434000301130ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_security_group(security_group_id, options = {}) data = {'security_group' => {}} [:name, :description].each do |key| data['security_group'][key] = options[key] if options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "security-groups/#{security_group_id}" ) end end class Mock def update_security_group(security_group_id, options = {}) response = Excon::Response.new security_group = list_security_groups.body['security_groups'].find do |sg| sg['id'] == security_group_id end if security_group security_group['name'] = options[:name] security_group['description'] = options[:description] response.body = {'security_group' => security_group} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_subnet.rb000066400000000000000000000026731476630434000263400ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_subnet(subnet_id, options = {}) data = {'subnet' => {}} vanilla_options = [:name, :gateway_ip, :allocation_pools, :dns_nameservers, :host_routes, :enable_dhcp] vanilla_options.select { |o| options.key?(o) }.each do |key| data['subnet'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "subnets/#{subnet_id}" ) end end class Mock def update_subnet(subnet_id, options = {}) response = Excon::Response.new if subnet = list_subnets.body['subnets'].find { |_| _['id'] == subnet_id } subnet['name'] = options[:name] subnet['gateway_ip'] = options[:gateway_ip] subnet['dns_nameservers'] = options[:dns_nameservers] || [] subnet['host_routes'] = options[:host_routes] || [] subnet['allocation_pools'] = options[:allocation_pools] || [] subnet['enable_dhcp'] = options[:enable_dhcp] response.body = {'subnet' => subnet} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_subnet_pool.rb000066400000000000000000000033071476630434000273640ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_subnet_pool(subnet_pool_id, options = {}) data = {'subnetpool' => {}} vanilla_options = [:name, :description, :prefixes, :address_scope_id, :min_prefixlen, :max_prefixlen, :default_prefixlen] vanilla_options.select { |o| options.key?(o) }.each do |key| data['subnetpool'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "subnetpools/#{subnet_pool_id}" ) end end class Mock def update_subnet_pool(subnet_pool_id, options = {}) subnet_pool = list_subnet_pools.body['subnetpools'].find { |s| s['id'] == subnet_pool_id } if subnet_pool subnet_pool['name'] = options[:name] subnet_pool['description'] = options[:description] subnet_pool['prefixes'] = options[:prefixes] || [] subnet_pool['min_prefixlen'] = options[:min_prefixlen] || 64 subnet_pool['max_prefixlen'] = options[:max_prefixlen] || 64 subnet_pool['default_prefixlen'] = options[:default_prefixlen] || 64 subnet_pool['address_scope_id'] = options[:address_scope_id] subnet_pool['updated_at'] = Time.now.to_s response = Excon::Response.new response.body = {'subnetpool' => subnet_pool} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/network/requests/update_vpn_service.rb000066400000000000000000000032021476630434000273500ustar00rootroot00000000000000module Fog module OpenStack class Network class Real def update_vpn_service(vpn_service_id, options = {}) data = {'vpnservice' => {}} vanilla_options = [:name, :description, :admin_state_up] vanilla_options.select { |o| options.key?(o) }.each do |key| data['vpnservice'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => 200, :method => 'PUT', :path => "vpn/vpnservices/#{vpn_service_id}" ) end end class Mock def update_vpn_service(vpn_service_id, options = {}) response = Excon::Response.new if vpn_service = list_vpn_services.body['vpnservices'].detect { |instance| instance['id'] == vpn_service_id } vpn_service['id'] = vpn_service_id vpn_service['subnet_id'] = options[:subnet_id] vpn_service['router_id'] = options[:router_id] vpn_service['name'] = options[:name] vpn_service['description'] = options[:description] vpn_service['status'] = 'ACTIVE' vpn_service['admin_state_up'] = options[:admin_state_up] vpn_service['tenant_id'] = options[:tenant_id] vpn_service['external_v4_ip'] = '1.2.3.4' vpn_service['external_v6_ip'] = '::1' response.body = {'vpnservice' => vpn_service} response.status = 200 response else raise Fog::OpenStack::Network::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv.rb000066400000000000000000000066101476630434000207160ustar00rootroot00000000000000require 'yaml' module Fog module OpenStack class NFV < Fog::Service SUPPORTED_VERSIONS = /v1.0/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version ## REQUESTS # request_path 'fog/openstack/nfv/requests' # vnfds requests request :list_vnfds request :get_vnfd request :create_vnfd request :delete_vnfd # vfns requests request :list_vnfs request :get_vnf request :create_vnf request :update_vnf request :delete_vnf ## MODELS # model_path 'fog/openstack/nfv/models' model :vnfd collection :vnfds model :vnf collection :vnfs class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :vnfs => [ { "status" => "ACTIVE", "description" => "demo-example", "tenant_id" => "943b6ff8229a4ec2bed0a306f869a0ea", "instance_id" => "5a9a7d3b-24f5-4226-8d43-262972a1776e", "mgmt_url" => "{\"vdu1\": \"192.168.0.8\"}", "attributes" => {"monitoring_policy" => "{\"vdus\": {}}"}, "id" => "cb4cdbd8-cf1a-4758-8d36-40db788a37a1", "name" => "LadasTest" } ], :vnfds => [ { "service_types" => [{"service_type" => "vnfd", "id" => "f9211d81-b58a-4849-8d38-e25376c421bd"}], "description" => "demo-example", "tenant_id" => "943b6ff8229a4ec2bed0a306f869a0ea", "mgmt_driver" => "noop", "infra_driver" => "heat", "attributes" => {"vnfd" => "template_name: sample-vnfd"}, "id" => "1f8f33cf-8c94-427e-a040-f3e393b773b7", "name" => "sample-vnfd" } ] } end end def self.reset @data = nil end include Fog::OpenStack::Core def initialize(options = {}) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86_400).iso8601 end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::NFV::NotFound end def default_path_prefix 'v1.0' end def default_service_type %w[servicevm] end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/000077500000000000000000000000001476630434000203665ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/nfv/models/000077500000000000000000000000001476630434000216515ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/nfv/models/vnf.rb000066400000000000000000000023241476630434000227700ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class NFV class Vnf < Fog::OpenStack::Model identity :id attribute :status attribute :name attribute :tenant_id attribute :instance_id attribute :mgmt_url attribute :description attribute :vnf_attributes # Attributes for create and update attribute :vnf attribute :auth def create(options = {}) merge_attributes(service.create_vnf(default_options.merge(options)).body['vnf']) self end def update(options = {}) merge_attributes(service.update_vnf(identity, default_options.merge(options)).body['vnf']) self end def save(options = {}) identity ? update(options) : create(options) end def destroy requires :id service.delete_vnf(id) true end def default_options { :vnf => vnf, :auth => auth } end def vnf_attributes attributes['attributes'] end def ready? status == 'ACTIVE' end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/models/vnfd.rb000066400000000000000000000022161476630434000231340ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class NFV class Vnfd < Fog::OpenStack::Model identity :id attribute :service_types attribute :description attribute :tenant_id attribute :mgmt_driver attribute :infra_driver attribute :name attribute :vnf_attributes # Attributes for create attribute :vnfd attribute :auth def create(options = {}) merge_attributes(service.create_vnfd(default_options.merge(options)).body['vnfd']) self end def update(_options = {}) raise Fog::OpenStack::Errors::InterfaceNotImplemented, "Method 'update' is not supported" end def save(options = {}) identity ? update(options) : create(options) end def destroy requires :id service.delete_vnfd(id) true end def default_options { :vnfd => vnfd, :auth => auth } end def vnf_attributes attributes['attributes'] end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/models/vnfds.rb000066400000000000000000000011331476630434000233140ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/nfv/models/vnfd' module Fog module OpenStack class NFV class Vnfds < Fog::OpenStack::Collection model Fog::OpenStack::NFV::Vnfd def all(options = {}) load_response(service.list_vnfds(options), 'vnfds') end def get(uuid) data = service.get_vnfd(uuid).body['vnfd'] new(data) rescue Fog::OpenStack::NFV::NotFound nil end def destroy(uuid) vnfd = get(uuid) vnfd.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/models/vnfs.rb000066400000000000000000000011221476630434000231460ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/nfv/models/vnf' module Fog module OpenStack class NFV class Vnfs < Fog::OpenStack::Collection model Fog::OpenStack::NFV::Vnf def all(options = {}) load_response(service.list_vnfs(options), 'vnfs') end def get(uuid) data = service.get_vnf(uuid).body['vnf'] new(data) rescue Fog::OpenStack::NFV::NotFound nil end def destroy(uuid) vnf = get(uuid) vnf.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/000077500000000000000000000000001476630434000222415ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/create_vnf.rb000066400000000000000000000015231476630434000247030ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def create_vnf(options) options_valid = [ :auth, :vnf, ] # Filter only allowed creation attributes data = options.select do |key, _| options_valid.include?(key.to_sym) || options_valid.include?(key.to_s) end request( :body => Fog::JSON.encode(data), :expects => 201, :method => "POST", :path => "vnfs" ) end end class Mock def create_vnf(_) response = Excon::Response.new response.status = 201 create_data = data[:vnfs].first.merge("vnfd_id" => "id") response.body = {"vnf" => create_data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/create_vnfd.rb000066400000000000000000000014331476630434000250470ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def create_vnfd(options) options_valid = [ :auth, :vnfd, ] # Filter only allowed creation attributes data = options.select do |key, _| options_valid.include?(key.to_sym) || options_valid.include?(key.to_s) end request( :body => Fog::JSON.encode(data), :expects => 201, :method => "POST", :path => "vnfds" ) end end class Mock def create_vnfd(_) response = Excon::Response.new response.status = 201 response.body = {"vnfd" => data[:vnfds].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/delete_vnf.rb000066400000000000000000000006571476630434000247110ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def delete_vnf(vnf_id) request( :expects => 204, :method => "DELETE", :path => "vnfs/#{vnf_id}" ) end end class Mock def delete_vnf(_vnf_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/delete_vnfd.rb000066400000000000000000000006651476630434000250540ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def delete_vnfd(vnfd_id) request( :expects => 204, :method => "DELETE", :path => "vnfds/#{vnfd_id}" ) end end class Mock def delete_vnfd(_vnfd_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/get_vnf.rb000066400000000000000000000007351476630434000242230ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def get_vnf(vnf_id) request( :expects => 200, :method => 'GET', :path => "vnfs/#{vnf_id}" ) end end class Mock def get_vnf(_vnf_id) response = Excon::Response.new response.status = 200 response.body = {"vnf" => data[:vnfs].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/get_vnfd.rb000066400000000000000000000007451476630434000243700ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def get_vnfd(vnfd_id) request( :expects => 200, :method => 'GET', :path => "vnfds/#{vnfd_id}" ) end end class Mock def get_vnfd(_vnfd_id) response = Excon::Response.new response.status = 200 response.body = {"vnfd" => data[:vnfds].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/list_vnfds.rb000066400000000000000000000010041476630434000247340ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def list_vnfds(options = {}) request( :expects => 200, :method => 'GET', :path => "vnfds", :query => options ) end end class Mock def list_vnfds(_options = {}) response = Excon::Response.new response.status = 200 response.body = {"vnfds" => data[:vnfds]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/list_vnfs.rb000066400000000000000000000007771476630434000246100ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def list_vnfs(options = {}) request( :expects => 200, :method => 'GET', :path => "vnfs", :query => options ) end end class Mock def list_vnfs(_options = {}) response = Excon::Response.new response.status = 200 response.body = {"vnfs" => data[:vnfs]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/nfv/requests/update_vnf.rb000066400000000000000000000014411476630434000247210ustar00rootroot00000000000000module Fog module OpenStack class NFV class Real def update_vnf(id, options) options_valid = [ :auth, :vnf, ] # Filter only allowed creation attributes data = options.select do |key, _| options_valid.include?(key.to_sym) || options_valid.include?(key.to_s) end request( :body => Fog::JSON.encode(data), :expects => 200, :method => "PUT", :path => "vnfs/#{id}" ) end end class Mock def update_vnf(_, _) response = Excon::Response.new response.status = 200 response.body = {"vnf" => data[:vnfs].first} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration.rb000066400000000000000000000077631476630434000230230ustar00rootroot00000000000000module Fog module OpenStack class Orchestration < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version model_path 'fog/openstack/orchestration/models' model :stack collection :stacks model :resource collection :resources collection :resource_schemas model :event collection :events model :template collection :templates request_path 'fog/openstack/orchestration/requests' request :abandon_stack request :build_info request :create_stack request :delete_stack request :get_stack_template request :list_events request :list_resource_events request :list_resource_types request :list_resources request :list_stack_data request :list_stack_data_detailed request :list_stack_events request :preview_stack request :show_event_details request :show_resource_data request :show_resource_metadata request :show_resource_schema request :show_resource_template request :show_stack request :show_stack_details request :update_stack request :patch_stack request :validate_template request :cancel_update module Reflectable REFLECTION_REGEX = /\/stacks\/(\w+)\/([\w|-]+)\/resources\/(\w+)/ def resource @resource ||= service.resources.get(r[3], stack) end def stack @stack ||= service.stacks.get(r[1], r[2]) end private def reflection @reflection ||= REFLECTION_REGEX.match(links[0]['href']) end alias r reflection end class Mock attr_reader :auth_token attr_reader :auth_token_expiration attr_reader :current_user attr_reader :current_tenant def self.data @data ||= Hash.new do |hash, key| hash[key] = { :stacks => {} } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @current_tenant = options[:openstack_tenant] @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8774 management_url.path = '/v1' @openstack_management_url = management_url.to_s end def data self.class.data["#{@openstack_username}-#{@current_tenant}"] end def reset_data self.class.data.delete("#{@openstack_username}-#{@current_tenant}") end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Orchestration::NotFound end def default_service_type %w[orchestration] end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/000077500000000000000000000000001476630434000224615ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/000077500000000000000000000000001476630434000237445ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/event.rb000066400000000000000000000006201476630434000254100ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Orchestration class Event < Fog::OpenStack::Model include Reflectable identity :id %w(resource_name event_time links logical_resource_id resource_status resource_status_reason physical_resource_id).each do |a| attribute a.to_sym end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/events.rb000066400000000000000000000016731476630434000256040ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/orchestration/models/event' module Fog module OpenStack class Orchestration class Events < Fog::OpenStack::Collection model Fog::OpenStack::Orchestration::Event def all(options = {}, options_deprecated = {}) data = if options.kind_of?(Stack) service.list_stack_events(options, options_deprecated) elsif options.kind_of?(Hash) service.list_events(options) else service.list_resource_events(options.stack, options, options_deprecated) end load_response(data, 'events') end def get(stack, resource, event_id) data = service.show_event_details(stack, resource, event_id).body['event'] new(data) rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/resource.rb000066400000000000000000000013671476630434000261270ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Orchestration class Resource < Fog::OpenStack::Model include Reflectable identity :id %w(resource_name description links logical_resource_id physical_resource_id resource_status updated_time required_by resource_status_reason resource_type).each do |a| attribute a.to_sym end def events(options = {}) @events ||= service.events.all(self, options) end def metadata @metadata ||= service.show_resource_metadata(stack, resource_name).body['metadata'] end def template @template ||= service.templates.get(self) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/resource_schemas.rb000066400000000000000000000005331476630434000276240ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Orchestration class ResourceSchemas < Fog::OpenStack::Collection def get(resource_type) service.show_resource_schema(resource_type).body rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/resources.rb000066400000000000000000000020671476630434000263100ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/orchestration/models/resource' module Fog module OpenStack class Orchestration class Resources < Fog::OpenStack::Collection model Fog::OpenStack::Orchestration::Resource def types service.list_resource_types.body['resource_types'].sort end def all(options = {}, deprecated_options = {}) data = service.list_resources(options, deprecated_options) load_response(data, 'resources') end def get(resource_name, stack = nil) stack = first.stack if stack.nil? data = service.show_resource_data(stack.stack_name, stack.id, resource_name).body['resource'] new(data) rescue Fog::OpenStack::Compute::NotFound nil end def metadata(stack_name, stack_id, resource_name) service.show_resource_metadata(stack_name, stack_id, resource_name).body['resource'] rescue Fog::OpenStack::Compute::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/stack.rb000066400000000000000000000101341476630434000253750ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Orchestration class Stack < Fog::OpenStack::Model identity :id %w(capabilities description disable_rollback links notification_topics outputs parameters stack_name stack_status stack_status_reason template_description timeout_mins parent creation_time updated_time stack_user_project_id stack_owner files).each do |a| attribute a.to_sym end def save(options = {}) if persisted? stack_default_options = default_options if (options.key?(:template_url)) stack_default_options.delete(:template) end service.update_stack(self, stack_default_options.merge(options)).body['stack'] else service.stacks.create(default_options.merge(options)) end end # Deprecated def create Fog::Logger.deprecation("#create is deprecated, use #save(options) instead [light_black](#{caller.first})[/]") requires :stack_name service.stacks.create(default_options) end # Deprecated def update Fog::Logger.deprecation("#update is deprecated, use #save(options) instead [light_black](#{caller.first})[/]") requires :stack_name service.update_stack(self, default_options).body['stack'] end def patch(options = {}) requires :stack_name service.patch_stack(self, options).body['stack'] end def delete service.delete_stack(self) end alias destroy delete def details @details ||= service.stacks.get(stack_name, id) end def resources(options = {}) @resources ||= service.resources.all({:stack => self}.merge(options)) end def events(options = {}) @events ||= service.events.all(self, options) end def template @template ||= service.templates.get(self) end def abandon service.abandon_stack(self) end def cancel_update service.cancel_update(self) end # Deprecated def template_url Fog::Logger.deprecation("#template_url is deprecated, use it in options for #save(options) instead [light_black](#{caller.first})[/]") @template_url end # Deprecated def template_url=(url) Fog::Logger.deprecation("#template_url= is deprecated, use it in options for #save(options) instead [light_black](#{caller.first})[/]") @template_url = url end # Deprecated def template=(content) Fog::Logger.deprecation("#template=(content) is deprecated, use it in options for #save(options) instead [light_black](#{caller.first})[/]") @template = content end # Deprecated def timeout_in_minutes Fog::Logger.deprecation("#timeout_in_minutes is deprecated, set timeout_mins in options for save(options) instead [light_black](#{caller.first})[/]") timeout_mins end # Deprecated def timeout_in_minutes=(minutes) Fog::Logger.deprecation("#timeout_in_minutes=(minutes) is deprecated, set timeout_mins in options for save(options) instead [light_black](#{caller.first})[/]") timeout_mins = minutes end # build options to create or update stack def default_options template_content = if template && template.kind_of?(Fog::OpenStack::Orchestration::Template) template.content else template end options = { :stack_name => stack_name, :disable_rollback => disable_rollback, :timeout_mins => timeout_mins } options[:template] = template_content if template_content options[:template_url] = @template_url if @template_url options[:files] = @files if @files options end private :default_options end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/stacks.rb000066400000000000000000000035031476630434000255620ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/orchestration/models/stack' module Fog module OpenStack class Orchestration class Stacks < Fog::OpenStack::Collection model Fog::OpenStack::Orchestration::Stack def all(options = {}) # TODO(lsmola) we can uncomment this when https://bugs.launchpad.net/heat/+bug/1468318 is fixed, till then # we will use non detailed list # data = service.list_stack_data_detailed(options).body['stacks'] data = service.list_stack_data(options) load_response(data, 'stacks') end def summary(options = {}) data = service.list_stack_data(options) load_response(data, 'stacks') end def find_by_id(id) data = service.show_stack(id).body['stack'] new(data) rescue Fog::OpenStack::Orchestration::NotFound nil end def get(arg1, arg2 = nil) if arg2.nil? # Deprecated: get(id) Fog::Logger.deprecation("#get(id) is deprecated, use #get(name, id) instead [light_black](#{caller.first})[/]") return find_by_id(arg1) end # Normal use: get(name, id) name = arg1 id = arg2 data = service.show_stack_details(name, id).body['stack'] new(data) rescue Fog::OpenStack::Compute::NotFound nil end def adopt(options = {}) service.create_stack(options) end def create(options = {}) service.create_stack(options).body['stack'] end def preview(options = {}) data = service.preview_stack(options).body['stack'] new(data) end def build_info service.build_info.body end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/template.rb000066400000000000000000000004471476630434000261110ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Orchestration class Template < Fog::OpenStack::Model %w(format description template_version parameters resources content).each do |a| attribute a.to_sym end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/models/templates.rb000066400000000000000000000026231476630434000262720ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/orchestration/models/template' module Fog module OpenStack class Orchestration class Templates < Fog::OpenStack::Collection model Fog::OpenStack::Orchestration::Template def get(obj) data = if obj.kind_of?(Stack) service.get_stack_template(obj).body else service.show_resource_template(obj.resource_name).body end if data.key?('AWSTemplateFormatVersion') data['content'] = data.to_json data['format'] = 'CFN' data['template_version'] = data.delete('AWSTemplateFormatVersion') data['description'] = data.delete('Description') data['parameter'] = data.delete('Parameters') data['resources'] = data.delete('Resources') else data['content'] = data.to_yaml data['format'] = 'HOT' data['template_version'] = data.delete('heat_template_version') end new(data) rescue Fog::OpenStack::Orchestration::NotFound nil end def validate(options = {}) data = service.validate_template(options).body temp = new temp.parameters = data['Parameters'] temp.description = data['Description'] temp end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/000077500000000000000000000000001476630434000243345ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/abandon_stack.rb000066400000000000000000000004711476630434000274520ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def abandon_stack(stack) request( :expects => [200], :method => 'DELETE', :path => "stacks/#{stack.stack_name}/#{stack.id}/abandon" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/build_info.rb000066400000000000000000000004101476630434000267660ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def build_info request( :expects => [200], :method => 'GET', :path => 'build_info' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/cancel_update.rb000066400000000000000000000011231476630434000274450ustar00rootroot00000000000000# frozen_string_literal: true module Fog module OpenStack class Orchestration class Real def cancel_update(stack) request( :expects => 200, :method => 'POST', :path => "stacks/#{stack.stack_name}/#{stack.id}/actions", :body => Fog::JSON.encode('cancel_update' => nil) ) end end class Mock def cancel_update(_) response = Excon::Response.new response.status = 200 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/create_stack.rb000066400000000000000000000101121476630434000273040ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real # Create a stack. # # # * options [Hash]: # * :stack_name [String] Name of the stack to create. # * :template [String] Structure containing the template body. # or (one of the two Template parameters is required) # * :template_url [String] URL of file containing the template body. # * :files [Hash] Hash with files resources. # * :disable_rollback [Boolean] Controls rollback on stack creation failure, defaults to false. # * :parameters [Hash] Hash of providers to supply to template # * :timeout_mins [Integer] Minutes to wait before status is set to CREATE_FAILED # # @see http://developer.openstack.org/api-ref-orchestration-v1.html def create_stack(arg1, arg2 = nil) if arg1.kind_of?(Hash) # Normal use: create_stack(options) options = arg1 else # Deprecated: create_stack(stack_name, options = {}) Fog::Logger.deprecation("#create_stack(stack_name, options) is deprecated, use #create_stack(options) instead [light_black](#{caller.first})[/]") options = { :stack_name => arg1 }.merge(arg2.nil? ? {} : arg2) end # Templates should always: # - be strings # - contain URI references instead of relative paths. # Passing :template_url may not work well with `get_file` and remote `type`: # the python client implementation in shade retrieves from :template_uri # and replaces it with :template. # see https://github.com/openstack-infra/shade/blob/master/shade/openstackcloud.py#L1201 # see https://developer.openstack.org/api-ref/orchestration/v1/index.html#create-stack file_resolver = OrchestrationUtil::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) options[:template] = file_resolver.template options[:files] = file_resolver.files unless file_resolver.files.empty? request( :expects => 201, :path => 'stacks', :method => 'POST', :body => Fog::JSON.encode(options) ) end end class Mock def create_stack(arg1, arg2 = nil) if arg1.kind_of?(Hash) # Normal use: create_stack(options) options = arg1 else # Deprecated: create_stack(stack_name, options = {}) Fog::Logger.deprecation("#create_stack(stack_name, options) is deprecated, use #create_stack(options) instead [light_black](#{caller.first})[/]") options = { :stack_name => arg1 }.merge(arg2.nil? ? {} : arg2) end stack_id = Fog::Mock.random_hex(32) stack = data[:stacks][stack_id] = { 'id' => stack_id, 'stack_name' => options[:stack_name], 'links' => [], 'description' => options[:description], 'stack_status' => 'CREATE_COMPLETE', 'stack_status_reason' => 'Stack successfully created', 'creation_time' => Time.now, 'updated_time' => Time.now } response = Excon::Response.new response.status = 201 response.body = { 'id' => stack_id, 'links' => [{"href" => "http://localhost:8004/v1/fake_tenant_id/stacks/#{options[:stack_name]}/#{stack_id}", "rel" => "self"}] } if options.key?(:files) response.body['files'] = {'foo.sh' => 'hello'} end if options.key?(:template) || options.key?(:template_url) file_resolver = OrchestrationUtil::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) response.body['files'] = file_resolver.files unless file_resolver.files.empty? end response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/delete_stack.rb000066400000000000000000000033111476630434000273060ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real # Delete a stack. # # @param [Stack] Stack to be deleted # # @return [Excon::Response] # # @see http://developer.openstack.org/api-ref-orchestration-v1.html def delete_stack(arg1, arg2 = nil) if arg1.kind_of?(Stack) # Normal use: delete_stack(stack) stack = arg1 stack_name = stack.stack_name stack_id = stack.id else # Deprecated: delete_stack(stack_name, stack_id) Fog::Logger.deprecation("#delete_stack(stack_name, stack_id) is deprecated, use #delete_stack(stack) instead [light_black](#{caller.first})[/]") stack_name = arg1 stack_id = arg2 end request( :expects => 204, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'DELETE' ) end end class Mock def delete_stack(arg1, arg2 = nil) if arg1.kind_of?(Stack) # Normal use: delete_stack(stack) stack = arg1 stack_name = stack.stack_name stack_id = stack.id else # Deprecated: delete_stack(stack_name, stack_id) Fog::Logger.deprecation("#delete_stack(stack_name, stack_id) is deprecated, use #delete_stack(stack) instead [light_black](#{caller.first})[/]") stack_name = arg1 stack_id = arg2 end data[:stacks].delete(stack_id) response = Excon::Response.new response.status = 204 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/get_stack_template.rb000066400000000000000000000006101476630434000305150ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def get_stack_template(stack) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/template", :expects => 200 ) end end class Mock def get_stack_template(stack) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_events.rb000066400000000000000000000030411476630434000272160ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_events(options = {}) if !options.key?(:stack) && !(options.key?(:stack_name) && options.key?(:stack_id)) raise(ArgumentError, "Missing required options keys: :stack or :stack_name and :stack_id, while calling "\ " .list_events(options)") end stack = options.delete(:stack) stack_name = options.delete(:stack_name) stack_name ||= stack.stack_name if stack && stack.respond_to?(:stack_name) stack_id = options.delete(:stack_id) stack_id ||= stack.id if stack && stack.respond_to?(:id) resource = options.delete(:resource) resource_name = options.delete(:resource_name) resource_name ||= resource.resource_name if resource && resource.respond_to?(:resource_name) path = if resource_name "stacks/#{stack_name}/#{stack_id}/resources/#{resource_name}/events" else "stacks/#{stack_name}/#{stack_id}/events" end request(:method => 'GET', :path => path, :expects => 200, :query => options) end end class Mock def list_events(_options = {}) events = data[:events].values Excon::Response.new( :body => {'events' => events}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_resource_events.rb000066400000000000000000000017761476630434000311420ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_resource_events(stack, resource, options = {}) Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_resource_events(stack, resource, options)'\ ' is deprecated, call .list_events(:stack => stack, :resource => resource) or '\ ' .list_events(:stack_name => value, :stack_id => value, :resource_name => value)'\ ' instead') uri = "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource.resource_name}/events" request(:method => 'GET', :path => uri, :expects => 200, :query => options) end end class Mock def list_resource_events(_stack, _resource, _options = {}) events = data[:events].values Excon::Response.new( :body => {'events' => events}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_resource_types.rb000066400000000000000000000010701476630434000307650ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_resource_types(_options = {}) request( :method => 'GET', :path => "resource_types", :expects => 200, :query => {} ) end end class Mock def list_resource_types resources = data[:resource_types].values Excon::Response.new( :body => {'resource_types' => resources}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_resources.rb000066400000000000000000000034231476630434000277300ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_resources(options = {}, options_deprecated = {}) if options.kind_of?(Hash) if !options.key?(:stack) && !(options.key?(:stack_name) && options.key?(:stack_id)) raise(ArgumentError, "Missing required options keys: :stack or :stack_name and :stack_id, while calling "\ " .list_resources(options)") end stack = options.delete(:stack) stack_name = options.delete(:stack_name) stack_name ||= stack.stack_name if stack && stack.respond_to?(:stack_name) stack_id = options.delete(:stack_id) stack_id ||= stack.id if stack && stack.respond_to?(:id) path = "stacks/#{stack_name}/#{stack_id}/resources" params = options else Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_resources(stack, options) is deprecated, '\ ' call .list_resources(:stack => stack) or '\ ' .list_resources(:stack_name => value, :stack_id => value) instead') path = "stacks/#{options.stack_name}/#{options.id}/resources" params = options_deprecated end request(:method => 'GET', :path => path, :expects => 200, :query => params) end end class Mock def list_resources(_options = {}, _options_deprecated = {}) resources = data[:resources].values Excon::Response.new( :body => {'resources' => resources}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_stack_data.rb000066400000000000000000000010451476630434000300120ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_stack_data(options = {}) request( :method => 'GET', :path => 'stacks', :expects => 200, :query => options ) end end class Mock def list_stack_data(_options = {}) stacks = data[:stacks].values Excon::Response.new( :body => {'stacks' => stacks}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_stack_data_detailed.rb000066400000000000000000000045031476630434000316470ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_stack_data_detailed(options = {}) request( :method => 'GET', :path => 'stacks/detail', :expects => 200, :query => options ) end end class Mock def list_stack_data_detailed(_options = {}) Excon::Response.new( :body => { 'stacks' => [{"parent" => nil, "disable_rollback" => true, "description" => "No description", "links" => [{"href" => "http://192.0.2.1:8004/v1/ae084f19a7974d5b95703f633e57fd64/stacks/overcloud/9ea5226f-0bb3-40bf-924b-f89ea11bb69c", "rel" => "self"}], "stack_status_reason" => "Stack CREATE completed successfully", "stack_name" => "overcloud", "stack_user_project_id" => "ae084f19a7974d5b95703f633e57fd64", "stack_owner" => "admin", "creation_time" => "2015-06-24T07:19:01Z", "capabilities" => [], "notification_topics" => [], "updated_time" => nil, "timeout_mins" => nil, "stack_status" => "CREATE_COMPLETE", "parameters" => {"Controller-1::SSLKey" => "******", "Compute-1::RabbitClientUseSSL" => "False", "Controller-1::KeystoneSSLCertificate" => "", "Controller-1::CinderLVMLoopDeviceSize" => "5000"}, "id" => "9ea5226f-0bb3-40bf-924b-f89ea11bb69c", "outputs" => [], "template_description" => "No description"}] }, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/list_stack_events.rb000066400000000000000000000015341476630434000304100ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def list_stack_events(stack, options = {}) Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_stack_events(stack, options)'\ ' is deprecated, call .list_events(:stack => stack) or '\ ' .list_events(:stack_name => value, :stack_id => value) instead') uri = "stacks/#{stack.stack_name}/#{stack.id}/events" request(:method => 'GET', :path => uri, :expects => 200, :query => options) end end class Mock def list_stack_events(_stack, _options = {}) events = data[:events].values Excon::Response.new( :body => {'events' => events}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/patch_stack.rb000066400000000000000000000020711476630434000271450ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real # patch a stack. # # @param [Fog::OpenStack::Orchestration::Stack] the stack to patch. # @param [Hash] options # * :template [String] Structure containing the template body. # or (one of the two Template parameters is required) # * :template_url [String] URL of file containing the template body. # * :parameters [Hash] Hash of providers to supply to template. # def patch_stack(stack, options = {}) stack_name = stack.stack_name stack_id = stack.id request( :expects => 202, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'PATCH', :body => Fog::JSON.encode(options) ) end end class Mock def patch_stack(_stack, _options = {}) response = Excon::Response.new response.status = 202 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/preview_stack.rb000066400000000000000000000005211476630434000275250ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def preview_stack(options = {}) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'POST', :path => 'stacks/preview' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_event_details.rb000066400000000000000000000011571476630434000305530ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_event_details(stack, resource, event_id) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource.resource_name}/events/#{event_id}", :expects => 200 ) end end class Mock def show_event_details(_stack, _event) events = data[:events].values Excon::Response.new( :body => {'events' => events}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_resource_data.rb000066400000000000000000000011731476630434000305430ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_resource_data(stack_name, stack_id, resource_name) request( :method => 'GET', :path => "stacks/#{stack_name}/#{stack_id}/resources/#{resource_name}", :expects => 200 ) end end class Mock def show_resource_data(_stack_name, _stack_id, _resource_name) resources = data[:resources].values Excon::Response.new( :body => {'resources' => resources}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_resource_metadata.rb000066400000000000000000000011631476630434000314110ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_resource_metadata(stack, resource_name) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource_name}/metadata", :expects => 200 ) end end class Mock def show_resource_metadata(_stack, _resource_name) resources = data[:resources].values Excon::Response.new( :body => {'resources' => resources}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_resource_schema.rb000066400000000000000000000004421476630434000310700ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_resource_schema(name) request( :method => 'GET', :path => "resource_types/#{name}", :expects => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_resource_template.rb000066400000000000000000000005761476630434000314530ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_resource_template(name) request( :method => 'GET', :path => "resource_types/#{name}/template", :expects => 200 ) end end class Mock def show_resource_template(name) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_stack.rb000066400000000000000000000010261476630434000270250ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_stack(id) request( :method => 'GET', :path => "stacks/#{id}", :expects => 200 ) end end class Mock def show_stack(_id) stack = data[:stack].values Excon::Response.new( :body => {'stack' => stack}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/show_stack_details.rb000066400000000000000000000010151476630434000305300ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def show_stack_details(name, id) request( :method => 'GET', :path => "stacks/#{name}/#{id}", :expects => 200 ) end end class Mock def show_stack_details(_name, _id) stack = data[:stack].values Excon::Response.new( :body => {'stack' => stack}, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/update_stack.rb000066400000000000000000000071061476630434000273340ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real # Update a stack. # # @param [Fog::OpenStack::Orchestration::Stack] the stack to update. # @param [Hash] options # * :template [String] Structure containing the template body. # or (one of the two Template parameters is required) # * :template_url [String] URL of file containing the template body. # * :parameters [Hash] Hash of providers to supply to template. # * :files [Hash] Hash with files resources. # def update_stack(arg1, arg2 = nil, arg3 = nil) if arg1.kind_of?(Stack) # Normal use, update_stack(stack, options = {}) stack = arg1 stack_name = stack.stack_name stack_id = stack.id options = arg2.nil? ? {} : arg2 else # Deprecated, update_stack(stack_id, stack_name, options = {}) Fog::Logger.deprecation("#update_stack(stack_id, stack_name, options) is deprecated, use #update_stack(stack, options) instead [light_black](#{caller.first})[/]") stack_id = arg1 stack_name = arg2 options = { :stack_name => stack_name }.merge(arg3.nil? ? {} : arg3) end # Templates should always: # - be strings # - contain URI references instead of relative paths. # Passing :template_url may not work well with `get_file` and remote `type`: # the python client implementation in shade retrieves from :template_uri # and replaces it with :template. # see https://github.com/openstack-infra/shade/blob/master/shade/openstackcloud.py#L1201 # see https://developer.openstack.org/api-ref/orchestration/v1/index.html#create-stack file_resolver = Util::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) options[:template] = file_resolver.template options[:files] = file_resolver.files unless file_resolver.files.empty? request( :expects => 202, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'PUT', :body => Fog::JSON.encode(options) ) end end class Mock def update_stack(arg1, arg2 = nil, arg3 = nil) if arg1.kind_of?(Stack) # Normal use, update_stack(stack, options = {}) stack = arg1 stack_name = stack.stack_name stack_id = stack.id options = arg2.nil? ? {} : arg2 else # Deprecated, update_stack(stack_id, stack_name, options = {}) Fog::Logger.deprecation("#update_stack(stack_id, stack_name, options) is deprecated, use #update_stack(stack, options) instead [light_black](#{caller.first})[/]") stack_id = arg1 stack_name = arg2 options = { :stack_name => stack_name }.merge(arg3.nil? ? {} : arg3) end if options.key?(:files) response.body['files'] = {'foo.sh' => 'hello'} end if options.key?(:template) || options.key?(:template_url) file_resolver = Util::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) response.body['files'] = file_resolver.files unless file_resolver.files.empty? end response = Excon::Response.new response.status = 202 response.body = {} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/requests/validate_template.rb000066400000000000000000000005171476630434000303500ustar00rootroot00000000000000module Fog module OpenStack class Orchestration class Real def validate_template(options = {}) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'POST', :path => 'validate' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/orchestration/util/000077500000000000000000000000001476630434000234365ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/orchestration/util/recursive_hot_file_loader.rb000066400000000000000000000173371476630434000312040ustar00rootroot00000000000000require 'set' require 'yaml' require 'open-uri' require 'objspace' require 'fog/core' module Fog module OpenStack module OrchestrationUtil # # Resolve get_file resources found in a HOT template populating # a files Hash conforming to Heat Specs # https://developer.openstack.org/api-ref/orchestration/v1/index.html?expanded=create-stack-detail#stacks # # Files present in :files are not processed further. The others # are added to the Hash. This behavior is the same implemented in openstack-infra/shade # see https://github.com/openstack-infra/shade/blob/1d16f64fbf376a956cafed1b3edd8e51ccc16f2c/shade/openstackcloud.py#L1200 # # This implementation just process nested templates but not resource # registries. class RecursiveHotFileLoader attr_reader :files attr_reader :template def initialize(template, files = nil) # According to https://github.com/fog/fog-openstack/blame/master/docs/orchestration.md#L122 # templates can be either String or Hash. # If it's an Hash, we deep_copy it so the passed argument # is not modified by get_file_contents. template = deep_copy(template) @visited = Set.new @files = files || {} @template = get_template_contents(template) end # Return string def url_join(prefix, suffix) if prefix # URI.join replaces prefix parts before a # trailing slash. See https://docs.ruby-lang.org/en/2.3.0/URI.html. prefix += '/' unless prefix.to_s.end_with?("/") suffix = URI.join(prefix, suffix) # Force URI to use traditional file scheme representation. suffix.host = "" if suffix.scheme == "file" end suffix.to_s end # Retrieve a template content. # # @param template_file can be either: # - a raw_template string # - an URI string # - an Hash containing the parsed template. # # XXX: we could use named parameters # and better mimic heatclient implementation. def get_template_contents(template_file) Fog::Logger.debug("get_template_contents [#{template_file}]") raise "template_file should be Hash or String, not #{template_file.class.name}" unless template_file.kind_of?(String) || template_file.kind_of?(Hash) local_base_url = url_join("file:/", File.absolute_path(Dir.pwd)) if template_file.kind_of?(Hash) template_base_url = local_base_url template = template_file elsif template_is_raw?(template_file) template_base_url = local_base_url template = YAML.safe_load(template_file, :permitted_classes => [Date]) elsif template_is_url?(template_file) template_file = normalise_file_path_to_url(template_file) template_base_url = base_url_for_url(template_file) raw_template = read_uri(template_file) template = YAML.safe_load(raw_template, :permitted_classes => [Date]) Fog::Logger.debug("Template visited: #{@visited}") @visited.add(template_file) else raise "template_file is not a string of the expected form" end get_file_contents(template, template_base_url) template end # Traverse the template tree looking for get_file and type # and populating the @files attribute with their content. # Resource referenced by get_file and type are eventually # replaced with their absolute URI as done in heatclient # and shade. # def get_file_contents(from_data, base_url) Fog::Logger.debug("Processing #{from_data} with base_url #{base_url}") # Recursively traverse the tree # if recurse_data is Array or Hash recurse_data = from_data.kind_of?(Hash) ? from_data.values : from_data recurse_data.each { |value| get_file_contents(value, base_url) } if recurse_data.kind_of?(Array) # I'm on a Hash, process it. return unless from_data.kind_of?(Hash) from_data.each do |key, value| next if ignore_if(key, value) # Resolve relative paths. str_url = url_join(base_url, value) next if @files.key?(str_url) file_content = read_uri(str_url) # get_file should not recurse hot templates. if key == "type" && template_is_raw?(file_content) && !@visited.include?(str_url) template = get_template_contents(str_url) file_content = YAML.dump(template) end @files[str_url] = file_content # replace the data value with the normalised absolute URL as required # by https://docs.openstack.org/heat/pike/template_guide/hot_spec.html#get-file from_data[key] = str_url end end private # Retrive the content of a local or remote file. # # @param A local or remote uri. # # @raise ArgumentError if it's not a valid uri # # Protect open-uri from malign arguments like # - "|ls" # - multiline strings def read_uri(uri_or_filename) remote_schemes = %w[http https ftp] Fog::Logger.debug("Opening #{uri_or_filename}") begin # Validate URI to protect from open-uri attacks. url = URI(uri_or_filename) if remote_schemes.include?(url.scheme) # Remote schemes must contain an host. raise ArgumentError if url.host.nil? # Encode URI with spaces. uri_or_filename = uri_or_filename.gsub(/ /, "%20") end rescue URI::InvalidURIError raise ArgumentError, "Not a valid URI: #{uri_or_filename}" end # TODO: A future revision may implement a retry. content = '' # open-uri doesn't open "file:///" uris. uri_or_filename = uri_or_filename.sub(/^file:/, "") open(uri_or_filename) { |f| content = f.read } content end # Return true if the file is an heat template, false otherwise. def template_is_raw?(content) htv = content.strip.index("heat_template_version") # Tolerate some leading character in case of a json template. htv && htv < 5 end # Return true if it's an URI, false otherwise. def template_is_url?(path) normalise_file_path_to_url(path) true rescue ArgumentError, URI::InvalidURIError false end # Return true if I should I process this this file. # # @param [String] An heat template key # def ignore_if(key, value) return true if key != 'get_file' && key != 'type' return true unless value.kind_of?(String) return true if key == 'type' && !value.end_with?('.yaml', '.template') false end # Returns the string baseurl of the given url. def base_url_for_url(url) parsed = URI(url) parsed_dir = File.dirname(parsed.path) url_join(parsed, parsed_dir) end def normalise_file_path_to_url(path) # Nothing to do on URIs return path if URI(path).scheme path = File.absolute_path(path) url_join('file:/', path) end def deep_copy(item) return item if item.kind_of?(String) YAML.safe_load(YAML.dump(item), :permitted_classes => [Date]) end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning.rb000066400000000000000000000102511476630434000217270ustar00rootroot00000000000000module Fog module OpenStack class Planning < Fog::Service SUPPORTED_VERSIONS = /v2/ requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version ## MODELS # model_path 'fog/openstack/planning/models' model :role collection :roles model :plan collection :plans ## REQUESTS # request_path 'fog/openstack/planning/requests' # Role requests request :list_roles # Plan requests request :list_plans request :get_plan_templates request :get_plan request :patch_plan request :create_plan request :delete_plan request :add_role_to_plan request :remove_role_from_plan class Mock def self.data @data ||= {} end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9292 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end class Real include Fog::OpenStack::Core def default_endpoint_type 'admin' end def default_path_prefix 'v2' end def default_service_type %w[management] end # NOTE: uncommenting this should be treated as api-change! # def self.not_found_class # Fog::Planning::OpenStack::NotFound # end end end # TODO: get rid of inconform self.[] & self.new & self.services def self.[](service) new(:service => service) end def self.new(attributes) attributes = attributes.dup # Prevent delete from having side effects service = attributes.delete(:service).to_s.downcase.to_sym if services.include?(service) return Fog::OpenStack.const_get(service.to_s.capitalize).new(attributes) end raise ArgumentError, "Openstack has no #{service} service" end def self.services # Ruby 1.8.7 compatibility for select returning Array of Arrays (pairs) Hash[Fog.services.select { |_service, providers| providers.include?(:openstack) }].keys end end end fog-openstack-1.1.5/lib/fog/openstack/planning/000077500000000000000000000000001476630434000214035ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/planning/models/000077500000000000000000000000001476630434000226665ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/planning/models/plan.rb000066400000000000000000000030701476630434000241450ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Planning class Plan < Fog::OpenStack::Model MASTER_TEMPLATE_NAME = 'plan.yaml'.freeze ENVIRONMENT_NAME = 'environment.yaml'.freeze identity :uuid attribute :description attribute :name attribute :uuid attribute :created_at attribute :updated_at attribute :parameters def templates service.get_plan_templates(uuid).body end def master_template templates[MASTER_TEMPLATE_NAME] end def environment templates[ENVIRONMENT_NAME] end def provider_resource_templates templates.select do |key, _template| ![MASTER_TEMPLATE_NAME, ENVIRONMENT_NAME].include?(key) end end def patch(parameters) service.patch_plan(uuid, parameters[:parameters]).body end def add_role(role_uuid) service.add_role_to_plan(uuid, role_uuid) end def remove_role(role_uuid) service.remove_role_from_plan(uuid, role_uuid) end def destroy requires :uuid service.delete_plan(uuid) true end def create requires :name merge_attributes(service.create_plan(attributes).body) self end def update(parameters = nil) requires :uuid merge_attributes(service.patch_plan(uuid, parameters).body) self end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/models/plans.rb000066400000000000000000000013471476630434000243350ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/planning/models/plan' module Fog module OpenStack class Planning class Plans < Fog::OpenStack::Collection model Fog::OpenStack::Planning::Plan def all(options = {}) load_response(service.list_plans(options)) end def find_by_uuid(plan_uuid) new(service.get_plan(plan_uuid).body) end alias get find_by_uuid def method_missing(method_sym, *arguments, &block) if method_sym.to_s =~ /^find_by_(.*)$/ all.find do |plan| plan.send($1) == arguments.first end else super end end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/models/role.rb000066400000000000000000000007251476630434000241600ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Planning class Role < Fog::OpenStack::Model identity :uuid attribute :description attribute :name attribute :uuid def add_to_plan(plan_uuid) service.add_role_to_plan(plan_uuid, uuid) end def remove_from_plan(plan_uuid) service.remove_role_from_plan(plan_uuid, uuid) end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/models/roles.rb000066400000000000000000000005411476630434000243370ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/planning/models/role' module Fog module OpenStack class Planning class Roles < Fog::OpenStack::Collection model Fog::OpenStack::Planning::Role def all(options = {}) load_response(service.list_roles(options)) end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/000077500000000000000000000000001476630434000232565ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/planning/requests/add_role_to_plan.rb000066400000000000000000000023121476630434000270660ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def add_role_to_plan(plan_uuid, role_uuid) request( :expects => [201], :method => 'POST', :path => "plans/#{plan_uuid}/roles", :body => Fog::JSON.encode('uuid' => role_uuid) ) end end class Mock def add_role_to_plan(_plan_uuid, _role_uuid) response = Excon::Response.new response.status = 201 response.body = { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [], "roles" => [ { "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name" => "compute", "uuid" => "f72c0656-5696-4c66-81a5-d6d88a48e385", "version" => 1 } ], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/create_plan.rb000066400000000000000000000015321476630434000260610ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def create_plan(parameters) request( :expects => [201], :method => 'POST', :path => "plans", :body => Fog::JSON.encode(parameters) ) end end class Mock def create_plan(_parameters) response = Excon::Response.new response.status = 201 response.body = { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [], "roles" => [], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/delete_plan.rb000066400000000000000000000007021476630434000260560ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def delete_plan(plan_uuid) request( :expects => [204], :method => 'DELETE', :path => "plans/#{plan_uuid}" ) end end class Mock def delete_plan(_plan_uuid) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/get_plan.rb000066400000000000000000000042771476630434000254060ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def get_plan(plan_uuid) request( :expects => [200, 204], :method => 'GET', :path => "plans/#{plan_uuid}" ) end end class Mock def get_plan(_parameters = nil) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [ { "default" => "guest", "description" => "The password for RabbitMQ", "hidden" => true, "label" => nil, "name" => "compute-1 => =>RabbitPassword", "value" => "secret-password" }, { "default" => "default", "description" => "description", "hidden" => true, "label" => nil, "name" => "name", "value" => "value" }, ], "roles" => [ { "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name" => "compute", "uuid" => "b7b1583c-5c80-481f-a25b-708ed4a39734", "version" => 1 } ], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/get_plan_templates.rb000066400000000000000000000013721476630434000274550ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def get_plan_templates(plan_uuid) request( :expects => [200, 204], :method => 'GET', :path => "plans/#{plan_uuid}/templates" ) end end class Mock def get_plan_templates(_plan_uuid) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "environment.yaml" => "... content of template file ...", "plan.yaml" => "... content of template file ...", "provider-compute-1.yaml" => "... content of template file ..." } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/list_plans.rb000066400000000000000000000044641476630434000257630ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def list_plans(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'plans', :query => options ) end end class Mock def list_plans(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = [ { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [ { "default" => "guest", "description" => "The password for RabbitMQ", "hidden" => true, "label" => nil, "name" => "compute-1 => =>RabbitPassword", "value" => "secret-password" }, { "default" => "default", "description" => "description", "hidden" => true, "label" => nil, "name" => "name", "value" => "value" }, ], "roles" => [ { "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name" => "compute", "uuid" => "b7b1583c-5c80-481f-a25b-708ed4a39734", "version" => 1 } ], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/list_roles.rb000066400000000000000000000014601476630434000257630ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def list_roles(options = {}) request( :expects => [200, 204], :method => 'GET', :path => 'roles', :query => options ) end end class Mock def list_roles(_options = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = [ { "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name" => "compute", "uuid" => "f72c0656-5696-4c66-81a5-d6d88a48e385", "version" => 1 } ] response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/patch_plan.rb000066400000000000000000000035171476630434000257220ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def patch_plan(plan_uuid, parameters) request( :expects => [201], :method => 'PATCH', :path => "plans/#{plan_uuid}", :body => Fog::JSON.encode(parameters) ) end end class Mock def patch_plan(_plan_uuid, _parameters) response = Excon::Response.new response.status = 201 response.body = { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [ { "default" => "guest", "description" => "The password for RabbitMQ", "hidden" => true, "label" => nil, "name" => "compute-1::RabbitPassword", "value" => "secret-password" } ], "roles" => [ { "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n", "name" => "compute", "uuid" => "b7b1583c-5c80-481f-a25b-708ed4a39734", "version" => 1 } ], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/planning/requests/remove_role_from_plan.rb000066400000000000000000000015571476630434000301660ustar00rootroot00000000000000module Fog module OpenStack class Planning class Real def remove_role_from_plan(plan_uuid, role_uuid) request( :expects => [200], :method => 'DELETE', :path => "plans/#{plan_uuid}/roles/#{role_uuid}" ) end end class Mock def remove_role_from_plan(_plan_uuid, _role_uuid) response = Excon::Response.new response.status = 200 response.body = { "created_at" => "2014-09-26T20:23:14.222815", "description" => "Development testing cloud", "name" => "dev-cloud", "parameters" => [], "roles" => [], "updated_at" => nil, "uuid" => "53268a27-afc8-4b21-839f-90227dd7a001" } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system.rb000066400000000000000000000363611476630434000240040ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem < Fog::Service SUPPORTED_VERSIONS = /v2(\.0)*/ SUPPORTED_MICROVERSION = '2.15'.freeze requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_shared_file_system_microversion model_path 'fog/openstack/shared_file_system/models' model :network collection :networks model :share collection :shares model :snapshot collection :snapshots model :share_access_rule collection :share_access_rules model :share_export_location collection :share_export_locations model :availability_zone collection :availability_zones request_path 'fog/openstack/shared_file_system/requests' # share networks request :list_share_networks request :list_share_networks_detail request :get_share_network request :create_share_network request :update_share_network request :delete_share_network request :share_network_action request :add_security_service_to_share_network request :remove_security_service_from_share_network # shares request :list_shares request :list_shares_detail request :get_share request :create_share request :update_share request :delete_share request :share_action request :grant_share_access request :revoke_share_access request :list_share_access_rules request :list_share_export_locations request :extend_share request :shrink_share # snapshots request :list_snapshots request :list_snapshots_detail request :get_snapshot request :create_snapshot request :update_snapshot request :delete_snapshot # security services request :list_security_services request :list_security_services_detail request :get_security_service request :create_security_service request :update_security_service request :delete_security_service # quota + limits request :get_limits request :get_quota request :update_quota # availability zones request :list_availability_zones # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Metrics/ClassLength, Metrics/AbcSize class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :shares => [ { "id" => "d94a8548-2079-4be0-b21c-0a887acd31ca", "links" => [ { "href" => "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/d94a8548-2079-4be0-b21c-0a887acd31ca", "rel" => "self" }, { "href" => "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/d94a8548-2079-4be0-b21c-0a887acd31ca", "rel" => "bookmark" } ], "name" => "My_share" }, { "id" => "406ea93b-32e9-4907-a117-148b3945749f", "links" => [ { "href" => "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/406ea93b-32e9-4907-a117-148b3945749f", "rel" => "self" }, { "href" => "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/406ea93b-32e9-4907-a117-148b3945749f", "rel" => "bookmark" } ], "name" => "Share1" } ], :shares_detail => [ { "links" => [ { "href" => "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc", "rel" => "self" }, { "href" => "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc", "rel" => "bookmark" } ], "availability_zone" => "nova", "share_network_id" => "f9b2e754-ac01-4466-86e1-5c569424754e", "export_locations" => [], "share_server_id" => "87d8943a-f5da-47a4-b2f2-ddfa6794aa82", "snapshot_id" => '', "id" => "f45cc5b2-d1bb-4a3e-ba5b-5c4125613adc", "size" => 1, "share_type" => "25747776-08e5-494f-ab40-a64b9d20d8f7", "share_type_name" => "default", "export_location" => '', "consistency_group_id" => "9397c191-8427-4661-a2e8-b23820dc01d4", "project_id" => "16e1ab15c35a457e9c2b2aa189f544e1", "metadata" => {}, "status" => "available", "access_rules_status" => "active", "description" => "There is a share description.", "host" => "manila2@generic1#GENERIC1", "task_state" => '', "is_public" => 'true', "snapshot_support" => 'true', "name" => "my_share4", "has_replicas" => 'false', "replication_type" => '', "created_at" => "2015-09-16T18:19:50.000000", "share_proto" => "NFS", "volume_type" => "default", "source_cgsnapshot_member_id" => '' } ], :share_networks => [ { "id" => "32763294-e3d4-456a-998d-60047677c2fb", "name" => "net_my1" }, { "id" => "713df749-aac0-4a54-af52-10f6c991e80c", "name" => "net_my" } ], :share_networks_detail => [ { "name" => "net_my1", "segmentation_id" => '', "created_at" => "2015-09-04T14:57:13.000000", "neutron_subnet_id" => "53482b62-2c84-4a53-b6ab-30d9d9800d06", "updated_at" => '', "id" => "32763294-e3d4-456a-998d-60047677c2fb", "neutron_net_id" => "998b42ee-2cee-4d36-8b95-67b5ca1f2109", "ip_version" => '', "nova_net_id" => '', "cidr" => '', "project_id" => "16e1ab15c35a457e9c2b2aa189f544e1", "network_type" => '', "description" => "descr" } ], :snapshots => [ { "id" => "086a1aa6-c425-4ecd-9612-391a3b1b9375", "links" => [ { "href" => "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375", "rel" => "self" }, { "href" => "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375", "rel" => "bookmark" } ], "name" => "snapshot_My_share" } ], :security_services_detail => [ { "status" => "new", "domain" => "", "project_id" => "16e1ab15c35a457e9c2b2aa189f544e1", "name" => "SecServ1", "created_at" => "2015-09-07T12:19:10.000000", "updated_at" => "", "server" => "", "dns_ip" => "10.0.0.0/24", "user" => "demo", "password" => "supersecret", "type" => "kerberos", "id" => "3c829734-0679-4c17-9637-801da48c0d5f", "description" => "Creating my first Security Service" } ], :security_services => [ { "status" => "new", "type" => "ldap", "id" => "5a1d3a12-34a7-4087-8983-50e9ed03509a", "name" => "SecServ2" } ], :availability_zones => [ { "name" => "nova", "created_at" => "2015-09-18T09:50:55.000000", "updated_at" => nil, "id" => "388c983d-258e-4a0e-b1ba-10da37d766db" } ], :snapshots_detail => [ { "status" => "available", "share_id" => "d94a8548-2079-4be0-b21c-0a887acd31ca", "name" => "snapshot_My_share", "links" => [ { "href" => "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375", "rel" => "self" }, { "href" => "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/086a1aa6-c425-4ecd-9612-391a3b1b9375", "rel" => "bookmark" } ], "created_at" => "2015-09-07T11:55:09.000000", "description" => "Here is a snapshot of share My_share", "share_proto" => "NFS", "share_size" => 1, "id" => "086a1aa6-c425-4ecd-9612-391a3b1b9375", "size" => 1 } ], :export_locations => [ { "path" => "10.254.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d", "share_instance_id" => "e1c2d35e-fe67-4028-ad7a-45f668732b1d", "is_admin_only" => false, "id" => "b6bd76ce-12a2-42a9-a30a-8a43b503867d", "preferred" => false }, { "path" => "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d", "share_instance_id" => "e1c2d35e-fe67-4028-ad7a-45f668732b1d", "is_admin_only" => true, "id" => "6921e862-88bc-49a5-a2df-efeed9acd583", "preferred" => false } ], :access_rules => [ { "share_id" => "406ea93b-32e9-4907-a117-148b3945749f", "created_at" => "2015-09-07T09:14:48.000000", "updated_at" => '', "access_type" => "ip", "access_to" => "0.0.0.0/0", "access_level" => "rw", "access_key" => '', "id" => "a25b2df3-90bd-4add-afa6-5f0dbbd50452" } ], :quota => { "gigabytes" => 1000, "shares" => 50, "snapshot_gigabytes" => 1000, "snapshots" => 50, "share_networks" => 10, "id" => "16e1ab15c35a457e9c2b2aa189f544e1" } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8786 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end end # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Metrics/ClassLength, Metrics/AbcSize class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::SharedFileSystem::NotFound end def action_prefix microversion_newer_than?('2.6') ? '' : 'os-' end def default_service_type %w[sharev2] end def initialize(options = {}) @supported_versions = SUPPORTED_VERSIONS @supported_microversion = SUPPORTED_MICROVERSION @fixed_microversion = options[:openstack_shared_file_system_microversion] @microversion_key = 'X-Openstack-Manila-Api-Version'.freeze super end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/000077500000000000000000000000001476630434000234465ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/000077500000000000000000000000001476630434000247315ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/availability_zone.rb000066400000000000000000000004321476630434000307620ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class AvailabilityZone < Fog::OpenStack::Model identity :id attribute :name attribute :created_at attribute :updated_at end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/availability_zones.rb000066400000000000000000000006561476630434000311550ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/availability_zone' module Fog module OpenStack class SharedFileSystem class AvailabilityZones < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::AvailabilityZone def all load_response(service.list_availability_zones(), 'availability_zones') end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/network.rb000066400000000000000000000021151476630434000267460ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class Network < Fog::OpenStack::Model identity :id attribute :name attribute :description attribute :neutron_net_id attribute :neutron_subnet_id attribute :nova_net_id attribute :network_type attribute :segmentation_id attribute :cidr attribute :ip_version attribute :project_id attribute :created_at attribute :updated_at def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? merge_attributes(service.create_share_network(attributes).body['share_network']) true end def update(options = nil) requires :id merge_attributes(service.update_share_network(id, options || attributes).body['share_network']) self end def destroy requires :id service.delete_share_network(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/networks.rb000066400000000000000000000013021476630434000271260ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/network' module Fog module OpenStack class SharedFileSystem class Networks < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::Network def all(options = {}) load_response(service.list_share_networks_detail(options), 'share_networks') end def find_by_id(id) net_hash = service.get_share_network(id).body['share_network'] new(net_hash.merge(:service => service)) end alias get find_by_id def destroy(id) net = find_by_id(id) net.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/share.rb000066400000000000000000000045671476630434000263740ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class Share < Fog::OpenStack::Model identity :id attribute :share_proto attribute :size attribute :status attribute :links attribute :share_type attribute :share_type_name attribute :availability_zone attribute :share_network_id attribute :share_server_id attribute :host attribute :snapshot_id attribute :snapshot_support attribute :task_state attribute :access_rules_status attribute :has_replicas attribute :consistency_group_id attribute :source_cgsnapshot_member_id attribute :project_id attribute :created_at # optional attribute :name attribute :description attribute :export_location attribute :export_locations attribute :metadata attribute :is_public attribute :volume_type def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :size, :share_proto merge_attributes(service.create_share(share_proto, size, attributes).body['share']) true end def update(options = nil) requires :id merge_attributes(service.update_share(id, options || attributes).body['share']) self end def destroy requires :id service.delete_share(id) true end def ready? status == 'available' end def extend(size) requires :id service.extend_share(id, size) true end def shrink(size) requires :id service.shrink_share(id, size) true end def grant_access(access_to, access_type, access_level) requires :id service.grant_share_access(id, access_to, access_type, access_level) true end def revoke_access(access_id) requires :id service.revoke_share_access(id, access_id) true end def access_rules service.share_access_rules(:share => self) end def export_locations service.share_export_locations(:share => self) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/share_access_rule.rb000066400000000000000000000015461476630434000307360ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class ShareAccessRule < Fog::OpenStack::Model attr_accessor :share identity :id attribute :access_level attribute :access_type attribute :access_to attribute :state def save requires :share, :access_level, :access_type, :access_to raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? merge_attributes(service.grant_share_access(@share.id, access_to, access_type, access_level).body['access']) true end def destroy requires :id, :share service.revoke_share_access(@share.id, id) true end def ready? state == 'active' end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/share_access_rules.rb000066400000000000000000000013271476630434000311160ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/share_access_rule' module Fog module OpenStack class SharedFileSystem class ShareAccessRules < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::ShareAccessRule attr_accessor :share def all requires :share load_response(service.list_share_access_rules(@share.id), 'access_list') end def find_by_id(id) all.find { |rule| rule.id == id } end alias get find_by_id def new(attributes = {}) requires :share super({:share => @share}.merge!(attributes)) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/share_export_location.rb000066400000000000000000000005041476630434000316500ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class ShareExportLocation < Fog::OpenStack::Model identity :id attribute :share_instance_id attribute :path attribute :is_admin_only attribute :preferred end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/share_export_locations.rb000066400000000000000000000015261476630434000320400ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/share_access_rule' module Fog module OpenStack class SharedFileSystem class ShareExportLocations < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::ShareExportLocation attr_accessor :share def all requires :share load_response(service.list_share_export_locations(@share.id), 'export_locations') end def find_by_id(id) location_hash = service.get_share_export_location(@share.id,id).body['export_location'] new(location_hash.merge(:service => service)) end alias get find_by_id def new(attributes = {}) requires :share super({:share => @share}.merge!(attributes)) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/shares.rb000066400000000000000000000012441476630434000265440ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/share' module Fog module OpenStack class SharedFileSystem class Shares < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::Share def all(options = {}) load_response(service.list_shares_detail(options), 'shares') end def find_by_id(id) share_hash = service.get_share(id).body['share'] new(share_hash.merge(:service => service)) end alias get find_by_id def destroy(id) share = find_by_id(id) share.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/snapshot.rb000066400000000000000000000021121476630434000271110ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class SharedFileSystem class Snapshot < Fog::OpenStack::Model identity :id attribute :share_id attribute :status attribute :name attribute :description attribute :share_proto attribute :share_size attribute :size attribute :provider_location attribute :links attribute :created_at def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? requires :share_id merge_attributes(service.create_snapshot(share_id, attributes).body['snapshot']) true end def update(options = nil) requires :id merge_attributes(service.update_snapshot(id, options || attributes).body['snapshot']) self end def destroy requires :id service.delete_snapshot(id) true end def ready? status == 'available' end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/models/snapshots.rb000066400000000000000000000013051476630434000272770ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/shared_file_system/models/snapshot' module Fog module OpenStack class SharedFileSystem class Snapshots < Fog::OpenStack::Collection model Fog::OpenStack::SharedFileSystem::Snapshot def all(options = {}) load_response(service.list_snapshots_detail(options), 'snapshots') end def find_by_id(id) snapshot_hash = service.get_snapshot(id).body['snapshot'] new(snapshot_hash.merge(:service => service)) end alias get find_by_id def destroy(id) snapshot = find_by_id(id) snapshot.destroy end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/000077500000000000000000000000001476630434000253215ustar00rootroot00000000000000add_security_service_to_share_network.rb000066400000000000000000000014551476630434000354300ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requestsmodule Fog module OpenStack class SharedFileSystem class Real def add_security_service_to_share_network(security_service_id, share_network_id) action = { 'add_security_service' => { 'security_service_id' => security_service_id } } share_network_action(share_network_id, action) end end class Mock def add_security_service_to_share_network(_security_service_id, share_network_id) response = Excon::Response.new response.status = 200 share_net = data[:share_network_updated] || data[:share_networks].first share_net['id'] = share_network_id response.body = {'share_network' => share_net} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/create_security_service.rb000066400000000000000000000023071476630434000325620ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def create_security_service(type, name, options = {}) data = { 'type' => type, 'name' => name } vanilla_options = [ :description, :dns_ip, :user, :password, :domain, :server ] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode('security_service' => data), :expects => 200, :method => 'POST', :path => 'security-services' ) end end class Mock def create_security_service(type, name, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 200 security_service = data[:security_services_detail].first.dup security_service['type'] = type security_service['name'] = name response.body = {'security_service' => security_service.merge(options)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/create_share.rb000066400000000000000000000024721476630434000303000ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def create_share(protocol, size, options = {}) data = { 'share_proto' => protocol, 'size' => size } vanilla_options = [ :name, :description, :display_name, :display_description, :share_type, :volume_type, :snapshot_id, :is_public, :metadata, :share_network_id, :consistency_group_id, :availability_zone ] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode('share' => data), :expects => 200, :method => 'POST', :path => 'shares' ) end end class Mock def create_share(protocol, size, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 200 share = data[:shares_detail].first.dup share['share_proto'] = protocol share['size'] = size share['status'] = 'creating' response.body = {'share' => share.merge(options)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/create_share_network.rb000066400000000000000000000020061476630434000320420ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def create_share_network(options = {}) data = {} vanilla_options = [ :name, :description, :neutron_net_id, :neutron_subnet_id, :nova_net_id ] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode('share_network' => data), :expects => 200, :method => 'POST', :path => 'share-networks' ) end end class Mock def create_share_network(options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 200 share_net = data[:share_networks_detail].first.dup response.body = {'share_networks' => share_net.merge(options)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/create_snapshot.rb000066400000000000000000000021701476630434000310300ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def create_snapshot(share_id, options = {}) data = { 'share_id' => share_id } vanilla_options = [ :name, :description, :display_name, :display_description, :force ] vanilla_options.select { |o| options[o] }.each do |key| data[key] = options[key] end request( :body => Fog::JSON.encode('snapshot' => data), :expects => 202, :method => 'POST', :path => 'snapshots' ) end end class Mock def create_snapshot(share_id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 202 snapshot = data[:snapshots_detail].first.dup snapshot['share_id'] = share_id snapshot['status'] = 'creating' response.body = {'snapshot' => snapshot.merge(options)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/delete_security_service.rb000066400000000000000000000007301476630434000325570ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def delete_security_service(id) request( :expects => 202, :method => 'DELETE', :path => "security-services/#{id}" ) end end class Mock def delete_security_service(_id) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/delete_share.rb000066400000000000000000000012601476630434000302710ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def delete_share(id) request( :expects => 202, :method => 'DELETE', :path => "shares/#{id}" ) end end class Mock def delete_share(id) response = Excon::Response.new response.status = 202 share = data[:share_updated] || data[:shares_detail].first.dup share['id'] = id share['links']['self'] = "https://127.0.0.1:8786/v2/shares/#{id}" response.body = {'share' => share} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/delete_share_network.rb000066400000000000000000000012061476630434000320420ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def delete_share_network(id) request( :expects => 202, :method => 'DELETE', :path => "share-networks/#{id}" ) end end class Mock def delete_share_network(id) response = Excon::Response.new response.status = 202 share_net = data[:share_net_updated] || data[:share_networks_detail].first.dup share_net['id'] = id response.body = {'share_network' => share_net} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/delete_snapshot.rb000066400000000000000000000014021476630434000310240ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def delete_snapshot(id) request( :expects => 202, :method => 'DELETE', :path => "snapshots/#{id}" ) end end class Mock def delete_snapshot(id) response = Excon::Response.new response.status = 202 snapshot = data[:snapshot_updated] || data[:snapshots_detail].first.dup snapshot['id'] = id snapshot['status'] = 'deleting' snapshot['links']['self'] = "https://127.0.0.1:8786/v2/snapshots/#{id}" response.body = {'snapshot' => snapshot} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/extend_share.rb000066400000000000000000000007711476630434000303240ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def extend_share(share_id, new_size) action = { "#{action_prefix}extend" => { 'new_size' => new_size } } share_action(share_id, action) end end class Mock def extend_share(_share_id, _new_size) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_limits.rb000066400000000000000000000021351476630434000300070ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_limits request( :expects => 200, :method => 'GET', :path => 'limits' ) end end class Mock def get_limits absolute_limits = { # Max 'maxTotalShareGigabytes' => 1000, 'maxTotalShareNetworks' => 10, 'maxTotalShares' => 50, 'maxTotalSnapshotGigabytes' => 1000, 'maxTotalShareSnapshots' => 50, # Used 'totalShareNetworksUsed' => 0, 'totalSharesUsed' => 0, 'totalShareGigabytesUsed' => 0, 'totalShareSnapshotsUsed' => 0, 'totalSnapshotGigabytesUsed' => 0 } Excon::Response.new( :status => 200, :body => { 'limits' => { 'rate' => [], 'absolute' => absolute_limits } } ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_quota.rb000066400000000000000000000011621476630434000276360ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_quota(project_id) request( :expects => 200, :method => 'GET', :path => "#{action_prefix}quota-sets/#{project_id}" ) end end class Mock def get_quota(project_id) response = Excon::Response.new response.status = 200 quota_data = data[:quota_updated] || data[:quota] quota_data['id'] = project_id response.body = {'quota_set' => quota_data} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_security_service.rb000066400000000000000000000012341476630434000320740ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_security_service(id) request( :expects => 200, :method => 'GET', :path => "security-services/#{id}" ) end end class Mock def get_security_service(id) response = Excon::Response.new response.status = 200 security_service = data[:security_service_updated] || data[:security_services_detail].first security_service['id'] = id response.body = {'security_service' => security_service} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_share.rb000066400000000000000000000010541476630434000276070ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_share(id) request( :expects => 200, :method => 'GET', :path => "shares/#{id}" ) end end class Mock def get_share(id) response = Excon::Response.new response.status = 200 share = data[:share_updated] || data[:shares_detail].first share['id'] = id response.body = share response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_share_export_location.rb000066400000000000000000000016561476630434000331100ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real # For older versions v1.0-2.8 the export locations are responsed as an attribute of share (export_locations). # For newer API versions (>= 2.9) it is available in separate APIs. # This method returns the export location detail. def get_share_export_location(share_id,export_location_id) request( :expects => 200, :method => 'GET', :path => "shares/#{share_id}/export_locations/​{export_location_id}​" ) end end class Mock def get_share_export_location(id) response = Excon::Response.new response.status = 200 share_export_location = data[:export_locations].first share_export_location['id'] = id response.body = share_export_location response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_share_network.rb000066400000000000000000000011561476630434000313630ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_share_network(id) request( :expects => 200, :method => 'GET', :path => "share-networks/#{id}" ) end end class Mock def get_share_network(id) response = Excon::Response.new response.status = 200 share_net = data[:share_network_updated] || data[:share_networks].first share_net['id'] = id response.body = {'share_network' => share_net} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/get_snapshot.rb000066400000000000000000000011041476630434000303400ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def get_snapshot(id) request( :expects => 200, :method => 'GET', :path => "snapshots/#{id}" ) end end class Mock def get_snapshot(id) response = Excon::Response.new response.status = 200 snapshot = data[:snapshot_updated] || data[:snapshots_detail].first snapshot['id'] = id response.body = snapshot response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/grant_share_access.rb000066400000000000000000000017431476630434000314710ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def grant_share_access(share_id, access_to = '0.0.0.0/0', access_type = 'ip', access_level = 'rw') action = { "#{action_prefix}allow_access" => { 'access_to' => access_to, 'access_type' => access_type, 'access_level' => access_level } } share_action(share_id, action, 200) end end class Mock def grant_share_access(share_id, access_to, access_type, access_level) response = Excon::Response.new response.status = 200 access = data[:access_rules].first access[:share_id] = share_id access[:access_level] = access_level access[:access_type] = access_type access[:access_to] = access_to response.body = {'access' => access} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_availability_zones.rb000066400000000000000000000011231476630434000325660ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_availability_zones() request( :expects => 200, :method => 'GET', :path => microversion_newer_than?('2.6') ? 'availability-zones' : 'os-availability-zone' ) end end class Mock def list_availability_zones() response = Excon::Response.new response.status = 200 response.body = {'availability_zones' => data[:availability_zones]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_security_services.rb000066400000000000000000000011151476630434000324510ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_security_services(options = {}) request( :expects => 200, :method => 'GET', :path => 'security-services', :query => options ) end end class Mock def list_security_services(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'security_services' => data[:security_services]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_security_services_detail.rb000066400000000000000000000011511476630434000337730ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_security_services_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'security-services/detail', :query => options ) end end class Mock def list_security_services_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'security_services' => data[:security_services_detail]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_share_access_rules.rb000066400000000000000000000012011476630434000325300ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_share_access_rules(share_id) action = { "#{action_prefix}access_list" => nil } share_action(share_id, action, 200) end end class Mock def list_share_access_rules(share_id) response = Excon::Response.new response.status = 200 rules = data[:access_rules] rules.each do |rule| rule[:share_id] = share_id end response.body = {'access_list' => rules} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_share_export_locations.rb000066400000000000000000000014751476630434000334660ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real # For older versions v1.0-2.8 the export locations are responsed as an attribute of share (export_locations). # For newer API versions (>= 2.9) it is available in separate APIs. # This method returns a list of the export locations. def list_share_export_locations(share_id) request( :expects => 200, :method => 'GET', :path => "shares/#{share_id}/export_locations" ) end end class Mock def list_share_export_locations(share_id) response = Excon::Response.new response.status = 200 response.body = {'export_locations' => data[:export_locations]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_share_networks.rb000066400000000000000000000010761476630434000317430ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_share_networks(options = {}) request( :expects => 200, :method => 'GET', :path => 'share-networks', :query => options ) end end class Mock def list_share_networks(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'share_networks' => data[:share_networks]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_share_networks_detail.rb000066400000000000000000000011321476630434000332560ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_share_networks_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'share-networks/detail', :query => options ) end end class Mock def list_share_networks_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'share_networks' => data[:share_networks_detail]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_shares.rb000066400000000000000000000010261476630434000301650ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_shares(options = {}) request( :expects => 200, :method => 'GET', :path => 'shares', :query => options ) end end class Mock def list_shares(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'shares' => data[:shares]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_shares_detail.rb000066400000000000000000000010621476630434000315070ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_shares_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'shares/detail', :query => options ) end end class Mock def list_shares_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'shares' => data[:shares_detail]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_snapshots.rb000066400000000000000000000010451476630434000307230ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_snapshots(options = {}) request( :expects => 200, :method => 'GET', :path => 'snapshots', :query => options ) end end class Mock def list_snapshots(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'snapshots' => data[:snapshots]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/list_snapshots_detail.rb000066400000000000000000000011011476630434000322360ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def list_snapshots_detail(options = {}) request( :expects => 200, :method => 'GET', :path => 'snapshots/detail', :query => options ) end end class Mock def list_snapshots_detail(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'snapshots' => data[:snapshots_detail]} response end end end end end remove_security_service_from_share_network.rb000066400000000000000000000014721476630434000365150ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requestsmodule Fog module OpenStack class SharedFileSystem class Real def remove_security_service_from_share_network(security_service_id, share_network_id) action = { 'remove_security_service' => { 'security_service_id' => security_service_id } } share_network_action(share_network_id, action) end end class Mock def remove_security_service_from_share_network(_security_service_id, share_network_id) response = Excon::Response.new response.status = 200 share_net = data[:share_network_updated] || data[:share_networks].first share_net['id'] = share_network_id response.body = {'share_network' => share_net} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/revoke_share_access.rb000066400000000000000000000010201476630434000316350ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def revoke_share_access(share_id, access_id) action = { "#{action_prefix}deny_access" => { 'access_id' => access_id } } share_action(share_id, action) end end class Mock def revoke_share_access(_share_id, _access_id) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/share_action.rb000066400000000000000000000005731476630434000303120ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def share_action(id, options = {}, expects_status = 202) request( :body => Fog::JSON.encode(options), :expects => expects_status, :method => 'POST', :path => "shares/#{id}/action" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/share_network_action.rb000066400000000000000000000006131476630434000320560ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def share_network_action(id, options = {}, expects_status = 200) request( :body => Fog::JSON.encode(options), :expects => expects_status, :method => 'POST', :path => "share-networks/#{id}/action" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/shrink_share.rb000066400000000000000000000007711476630434000303330ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def shrink_share(share_id, new_size) action = { "#{action_prefix}shrink" => { 'new_size' => new_size } } share_action(share_id, action) end end class Mock def shrink_share(_share_id, _new_size) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/update_quota.rb000066400000000000000000000015041476630434000303410ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def update_quota(project_id, options = {}) request( :body => Fog::JSON.encode('quota_set' => options), :expects => 200, :method => 'PUT', :path => "#{action_prefix}quota-sets/#{project_id}" ) end end class Mock def update_quota(project_id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:quota_updated] = data[:quota].merge(options) data[:quota_updated]['id'] = project_id response = Excon::Response.new response.status = 200 response.body = {'quota_set' => data[:quota_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/update_security_service.rb000066400000000000000000000016001476630434000325740ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def update_security_service(id, options = {}) request( :body => Fog::JSON.encode('security_service' => options), :expects => 200, :method => 'PUT', :path => "security-services/#{id}" ) end end class Mock def update_security_service(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:security_service_updated] = data[:security_services_detail].first.merge(options) data[:security_service_updated]['id'] = id response = Excon::Response.new response.status = 200 response.body = {'security_service' => data[:security_service_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/update_share.rb000066400000000000000000000020621476630434000303120ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def update_share(id, options = {}) request( :body => Fog::JSON.encode('share' => options), :expects => 200, :method => 'PUT', :path => "shares/#{id}" ) end end class Mock def update_share(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] update_data(id, options) response = Excon::Response.new response.status = 200 response.body = {'share' => data[:share_updated]} response end private def update_data(id, options) data[:share_updated] = data[:shares_detailed].first.merge(options) data[:share_updated]['id'] = id data[:share_updated]['status'] = "PENDING" data[:share_updated]['links']['self'] = "https://127.0.0.1:8786/v2/shares/#{id}" end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/update_share_network.rb000066400000000000000000000015311476630434000320630ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def update_share_network(id, options = {}) request( :body => Fog::JSON.encode('share_network' => options), :expects => 200, :method => 'PUT', :path => "share-networks/#{id}" ) end end class Mock def update_share_network(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:share_net_updated] = data[:share_networks_detail].first.merge(options) data[:share_net_updated]['id'] = id response = Excon::Response.new response.status = 200 response.body = {'share_network' => data[:share_net_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/shared_file_system/requests/update_snapshot.rb000066400000000000000000000014701476630434000310510ustar00rootroot00000000000000module Fog module OpenStack class SharedFileSystem class Real def update_snapshot(id, options = {}) request( :body => Fog::JSON.encode('snapshot' => options), :expects => 200, :method => 'PUT', :path => "snapshots/#{id}" ) end end class Mock def update_snapshot(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:snapshot_updated] = data[:snapshots_detail].first.merge(options) data[:snapshot_updated]['id'] = id response = Excon::Response.new response.status = 200 response.body = {'snapshot' => data[:snapshot_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage.rb000066400000000000000000000125041476630434000215700ustar00rootroot00000000000000 module Fog module OpenStack class Storage < Fog::Service requires :openstack_auth_url recognizes :openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_userid, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_auth_omit_default_port, :openstack_project_name, :openstack_project_id, :openstack_cache_ttl, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version, :openstack_temp_url_key, :openstack_application_credential_id, :openstack_application_credential_secret model_path 'fog/openstack/storage/models' model :directory collection :directories model :file collection :files request_path 'fog/openstack/storage/requests' request :copy_object request :delete_container request :delete_object request :delete_multiple_objects request :delete_static_large_object request :get_container request :get_containers request :get_object request :get_object_http_url request :get_object_https_url request :head_container request :head_containers request :head_object request :put_container request :put_object request :post_object request :put_object_manifest request :put_dynamic_obj_manifest request :put_static_obj_manifest request :post_set_meta_temp_url_key request :public_url module Utils def require_mime_types # Use mime/types/columnar if available, for reduced memory usage require 'mime/types/columnar' rescue LoadError begin require 'mime/types' rescue LoadError Fog::Logger.warning("'mime-types' missing, please install and try again.") exit(1) end end end class Mock include Utils def self.data @data ||= Hash.new do |hash, key| hash[key] = {} end end def self.reset @data = nil end def initialize(options = {}) require_mime_types @openstack_api_key = options[:openstack_api_key] @openstack_username = options[:openstack_username] @openstack_management_url = options[:openstack_management_url] || 'http://example:8774/v2/AUTH_1234' @openstack_management_uri = URI.parse(@openstack_management_url) @path = @openstack_management_uri.path @path.sub!(%r{/$}, '') end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def change_account(account) @original_path ||= @path version_string = @original_path.split('/')[1] @path = "/#{version_string}/#{account}" end def reset_account_name @path = @original_path end end class Real include Utils include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Storage::NotFound end def default_service_type %w[object-store] end def initialize(options = {}) require_mime_types super end # Change the current account while re-using the auth token. # # This is usefull when you have an admin role and you're able # to HEAD other user accounts, set quotas, list files, etc. # # For example: # # # List current user account details # service = Fog::OpenStack::Storage.new # service.request :method => 'HEAD' # # Would return something like: # # Account: AUTH_1234 # Date: Tue, 05 Mar 2013 16:50:52 GMT # X-Account-Bytes-Used: 0 (0.00 Bytes) # X-Account-Container-Count: 0 # X-Account-Object-Count: 0 # # Now let's change the account # # service.change_account('AUTH_3333') # service.request :method => 'HEAD' # # Would return something like: # # Account: AUTH_3333 # Date: Tue, 05 Mar 2013 16:51:53 GMT # X-Account-Bytes-Used: 23423433 # X-Account-Container-Count: 2 # X-Account-Object-Count: 10 # # If we wan't to go back to our original admin account: # # service.reset_account_name # def change_account(account) @original_path ||= @path version_string = @path.split('/')[1] @path = "/#{version_string}/#{account}" end def reset_account_name @path = @original_path end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/000077500000000000000000000000001476630434000212415ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/storage/models/000077500000000000000000000000001476630434000225245ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/storage/models/directories.rb000066400000000000000000000020301476630434000253600ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/storage/models/directory' module Fog module OpenStack class Storage class Directories < Fog::OpenStack::Collection model Fog::OpenStack::Storage::Directory def all(options = {}) data = service.get_containers(options) load_response(data) end def get(key, options = {}) data = service.get_container(key, options) directory = new(:key => key) for key, value in data.headers if ['X-Container-Bytes-Used', 'X-Container-Object-Count'].include?(key) directory.merge_attributes(key => value) end end directory.files.merge_attributes(options) directory.files.instance_variable_set(:@loaded, true) data.body.each do |file| directory.files << directory.files.new(file) end directory rescue Fog::OpenStack::Storage::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/models/directory.rb000066400000000000000000000021401476630434000250520ustar00rootroot00000000000000require 'fog/openstack/models/model' require 'fog/openstack/storage/models/files' module Fog module OpenStack class Storage class Directory < Fog::OpenStack::Model identity :key, :aliases => 'name' attribute :bytes, :aliases => 'X-Container-Bytes-Used' attribute :count, :aliases => 'X-Container-Object-Count' attr_writer :public def destroy requires :key service.delete_container(key) true rescue Excon::Errors::NotFound false end def files @files ||= begin Fog::OpenStack::Storage::Files.new( :directory => self, :service => service ) end end def public_url requires :key @public_url ||= begin service.public_url(key) rescue Fog::OpenStack::Storage::NotFound => err nil end end def save requires :key service.put_container(key, :public => @public) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/models/file.rb000066400000000000000000000161031476630434000237710ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Storage class File < Fog::OpenStack::Model identity :key, :aliases => 'name' attribute :access_control_allow_origin, :aliases => ['Access-Control-Allow-Origin'] attribute :cache_control, :aliases => ['Cache-Control'] attribute :content_length, :aliases => ['bytes', 'Content-Length'], :type => :integer attribute :content_type, :aliases => ['content_type', 'Content-Type'] attribute :content_disposition, :aliases => ['content_disposition', 'Content-Disposition'] attribute :etag, :aliases => ['hash', 'Etag'] attribute :last_modified, :aliases => ['last_modified', 'Last-Modified'], :type => :time attribute :metadata attribute :origin, :aliases => ['Origin'] # @!attribute [rw] delete_at # A Unix Epoch Timestamp, in integer form, representing the time when this object will be automatically deleted. # @return [Integer] the unix epoch timestamp of when this object will be automatically deleted # @see http://docs.openstack.org/developer/swift/overview_expiring_objects.html attribute :delete_at, :aliases => ['X-Delete-At'] # @!attribute [rw] delete_after # A number of seconds representing how long from now this object will be automatically deleted. # @return [Integer] the number of seconds until this object will be automatically deleted # @see http://docs.openstack.org/developer/swift/overview_expiring_objects.html attribute :delete_after, :aliases => ['X-Delete-After'] # @!attribute [rw] content_encoding # When you create an object or update its metadata, you can optionally set the Content-Encoding metadata. # This metadata enables you to indicate that the object content is compressed without losing the identity of the # underlying media type (Content-Type) of the file, such as a video. # @see http://docs.openstack.org/developer/swift/api/use_content-encoding_metadata.html#use-content-encoding-metadata attribute :content_encoding, :aliases => 'Content-Encoding' def initialize(new_attributes = {}) super @dirty = if last_modified then false else true end end def body attributes[:body] ||= if last_modified collection.get(identity).try(:body) || '' else '' end end def body=(new_body) attributes[:body] = new_body @dirty = true end attr_reader :directory def copy(target_directory_key, target_file_key, options = {}) requires :directory, :key options['Content-Type'] ||= content_type if content_type options['Access-Control-Allow-Origin'] ||= access_control_allow_origin if access_control_allow_origin options['Origin'] ||= origin if origin options['Content-Encoding'] ||= content_encoding if content_encoding service.copy_object(directory.key, key, target_directory_key, target_file_key, options) target_directory = service.directories.new(:key => target_directory_key) target_directory.files.get(target_file_key) end def destroy requires :directory, :key service.delete_object(directory.key, key) @dirty = true true end def metadata attributes[:metadata] ||= headers_to_metadata end def owner=(new_owner) if new_owner attributes[:owner] = { :display_name => new_owner['DisplayName'], :id => new_owner['ID'] } end end def public=(new_public) new_public end # Get a url for file. # # required attributes: key # # @param expires [String] number of seconds (since 1970-01-01 00:00) before url expires # @param options [Hash] # @return [String] url # def url(expires, options = {}) requires :directory, :key service.create_temp_url(directory.key, key, expires, "GET", options) end def public_url requires :key collection.get_url(key) end def save(options = {}) requires :directory, :key options['Cache-Control'] = cache_control if cache_control options['Content-Type'] = content_type if content_type options['Content-Disposition'] = content_disposition if content_disposition options['Access-Control-Allow-Origin'] = access_control_allow_origin if access_control_allow_origin options['Origin'] = origin if origin options['X-Delete-At'] = delete_at if delete_at options['X-Delete-After'] = delete_after if delete_after options['Content-Encoding'] = content_encoding if content_encoding options.merge!(metadata_to_headers) if not @dirty data = service.post_object(directory.key, key, options) else requires :body data = service.put_object(directory.key, key, body, options) self.content_length = Fog::Storage.get_body_size(body) self.content_type ||= Fog::Storage.get_content_type(body) end update_attributes_from(data) refresh_metadata true end private attr_writer :directory def refresh_metadata metadata.reject! { |_k, v| v.nil? } end def headers_to_metadata key_map = key_mapping Hash[metadata_attributes.map { |k, v| [key_map[k], v] }] end def key_mapping key_map = metadata_attributes key_map.each_pair { |k, _v| key_map[k] = header_to_key(k) } end def header_to_key(opt) opt.gsub(metadata_prefix, '').split('-').map { |k| k[0, 1].downcase + k[1..-1] }.join('_').to_sym end def metadata_to_headers header_map = header_mapping Hash[metadata.map { |k, v| [header_map[k], v] }] end def header_mapping header_map = metadata.dup header_map.each_pair { |k, _v| header_map[k] = key_to_header(k) } end def key_to_header(key) metadata_prefix + key.to_s.split(/[-_]/).map(&:capitalize).join('-') end def metadata_attributes if last_modified headers = service.head_object(directory.key, key).headers headers.reject! { |k, _v| !metadata_attribute?(k) } else {} end end def metadata_attribute?(key) key.to_s =~ /^#{metadata_prefix}/ end def metadata_prefix "X-Object-Meta-" end def update_attributes_from(data) merge_attributes(data.headers.reject { |key, _value| ['Content-Length', 'Content-Type'].include?(key) }) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/models/files.rb000066400000000000000000000051071476630434000241560ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/storage/models/file' module Fog module OpenStack class Storage class Files < Fog::OpenStack::Collection attribute :directory attribute :limit attribute :marker attribute :path attribute :prefix model Fog::OpenStack::Storage::File def all(options = {}) requires :directory options = { 'limit' => limit, 'marker' => marker, 'path' => path, 'prefix' => prefix }.merge!(options) merge_attributes(options) parent = directory.collection.get( directory.key, options ) if parent # TODO: change to load_response? load(parent.files.map(&:attributes)) end end alias each_file_this_page each def each if !block_given? self else subset = dup.all subset.each_file_this_page { |f| yield f } while subset.length == (subset.limit || 10000) subset = subset.all(:marker => subset.last.key) subset.each_file_this_page { |f| yield f } end self end end def get(key, &block) requires :directory data = service.get_object(directory.key, key, &block) file_data = data.headers.merge(:body => data.body, :key => key) new(file_data) rescue Fog::OpenStack::Storage::NotFound nil end def get_url(key) requires :directory if directory.public_url "#{directory.public_url}/#{Fog::OpenStack.escape(key, '/')}" end end def get_http_url(key, expires, options = {}) requires :directory service.get_object_http_url(directory.key, key, expires, options) end def get_https_url(key, expires, options = {}) requires :directory service.get_object_https_url(directory.key, key, expires, options) end def head(key, _options = {}) requires :directory data = service.head_object(directory.key, key) file_data = data.headers.merge(:key => key) new(file_data) rescue Fog::OpenStack::Storage::NotFound nil end def new(attributes = {}) requires :directory super({:directory => directory}.merge!(attributes)) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/000077500000000000000000000000001476630434000231145ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/storage/requests/copy_object.rb000066400000000000000000000017021476630434000257410ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Copy object # # ==== Parameters # * source_container_name<~String> - Name of source bucket # * source_object_name<~String> - Name of source object # * target_container_name<~String> - Name of bucket to create copy in # * target_object_name<~String> - Name for new copy of object # * options<~Hash> - Additional headers def copy_object(source_container_name, source_object_name, target_container_name, target_object_name, options = {}) headers = {'X-Copy-From' => "/#{source_container_name}/#{source_object_name}"}.merge(options) request(:expects => [201, 202], :headers => headers, :method => 'PUT', :path => "#{Fog::OpenStack.escape(target_container_name)}/#{Fog::OpenStack.escape(target_object_name)}") end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/delete_container.rb000066400000000000000000000006531476630434000267510ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Delete an existing container # # ==== Parameters # * name<~String> - Name of container to delete # def delete_container(name) request( :expects => 204, :method => 'DELETE', :path => Fog::OpenStack.escape(name) ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/delete_multiple_objects.rb000066400000000000000000000063231476630434000303330ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Deletes multiple objects or containers with a single request. # # To delete objects from a single container, +container+ may be provided # and +object_names+ should be an Array of object names within the container. # # To delete objects from multiple containers or delete containers, # +container+ should be +nil+ and all +object_names+ should be prefixed with a container name. # # Containers must be empty when deleted. +object_names+ are processed in the order given, # so objects within a container should be listed first to empty the container. # # Up to 10,000 objects may be deleted in a single request. # The server will respond with +200 OK+ for all requests. # +response.body+ must be inspected for actual results. # # @example Delete objects from a container # object_names = ['object', 'another/object'] # conn.delete_multiple_objects('my_container', object_names) # # @example Delete objects from multiple containers # object_names = ['container_a/object', 'container_b/object'] # conn.delete_multiple_objects(nil, object_names) # # @example Delete a container and all it's objects # object_names = ['my_container/object_a', 'my_container/object_b', 'my_container'] # conn.delete_multiple_objects(nil, object_names) # # @param container [String,nil] Name of container. # @param object_names [Array] Object names to be deleted. # @param options [Hash] Additional request headers. # # @return [Excon::Response] # * body [Hash] - Results of the operation. # * "Number Not Found" [Integer] - Number of missing objects or containers. # * "Response Status" [String] - Response code for the subrequest of the last failed operation. # * "Errors" [Array] # * object_name [String] - Object that generated an error when the delete was attempted. # * response_status [String] - Response status from the subrequest for object_name. # * "Number Deleted" [Integer] - Number of objects or containers deleted. # * "Response Body" [String] - Response body for "Response Status". def delete_multiple_objects(container, object_names, options = {}) body = object_names.map do |name| object_name = container ? "#{container}/#{name}" : name URI.encode(object_name) end.join("\n") response = request({ :expects => 200, :method => 'DELETE', :headers => options.merge('Content-Type' => 'text/plain', 'Accept' => 'application/json'), :body => body, :query => {'bulk-delete' => true} }, false) response.body = Fog::JSON.decode(response.body) response end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/delete_object.rb000066400000000000000000000010311476630434000262240ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Delete an existing object # # ==== Parameters # * container<~String> - Name of container to delete # * object<~String> - Name of object to delete # def delete_object(container, object) request( :expects => 204, :method => 'DELETE', :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/delete_static_large_object.rb000066400000000000000000000040271476630434000307550ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Delete a static large object. # # Deletes the SLO manifest +object+ and all segments that it references. # The server will respond with +200 OK+ for all requests. # +response.body+ must be inspected for actual results. # # @param container [String] Name of container. # @param object [String] Name of the SLO manifest object. # @param options [Hash] Additional request headers. # # @return [Excon::Response] # * body [Hash] - Results of the operation. # * "Number Not Found" [Integer] - Number of missing segments. # * "Response Status" [String] - Response code for the subrequest of the last failed operation. # * "Errors" [Array] # * object_name [String] - Object that generated an error when the delete was attempted. # * response_status [String] - Response status from the subrequest for object_name. # * "Number Deleted" [Integer] - Number of segments deleted. # * "Response Body" [String] - Response body for Response Status. # # @see http://docs.openstack.org/api/openstack-object-storage/1.0/content/static-large-objects.html def delete_static_large_object(container, object, options = {}) response = request({ :expects => 200, :method => 'DELETE', :headers => options.merge('Content-Type' => 'text/plain', 'Accept' => 'application/json'), :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}", :query => {'multipart-manifest' => 'delete'} }, false) response.body = Fog::JSON.decode(response.body) response end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/get_container.rb000066400000000000000000000032631476630434000262660ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Get details for container and total bytes stored # # ==== Parameters # * container<~String> - Name of container to retrieve info for # * options<~String>: # * 'limit'<~String> - Maximum number of objects to return # * 'marker'<~String> - Only return objects whose name is greater than marker # * 'prefix'<~String> - Limits results to those starting with prefix # * 'path'<~String> - Return objects nested in the pseudo path # # ==== Returns # * response<~Excon::Response>: # * headers<~Hash>: # * 'X-Account-Container-Count'<~String> - Count of containers # * 'X-Account-Bytes-Used'<~String> - Bytes used # * body<~Array>: # * 'bytes'<~Integer> - Number of bytes used by container # * 'count'<~Integer> - Number of items in container # * 'name'<~String> - Name of container # * item<~Hash>: # * 'bytes'<~String> - Size of object # * 'content_type'<~String> Content-Type of object # * 'hash'<~String> - Hash of object (etag?) # * 'last_modified'<~String> - Last modified timestamp # * 'name'<~String> - Name of object def get_container(container, options = {}) options = options.reject { |_key, value| value.nil? } request( :expects => 200, :method => 'GET', :path => Fog::OpenStack.escape(container), :query => {'format' => 'json'}.merge!(options) ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/get_containers.rb000066400000000000000000000017471476630434000264560ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # List existing storage containers # # ==== Parameters # * options<~Hash>: # * 'limit'<~Integer> - Upper limit to number of results returned # * 'marker'<~String> - Only return objects with name greater than this value # # ==== Returns # * response<~Excon::Response>: # * body<~Array>: # * container<~Hash>: # * 'bytes'<~Integer>: - Number of bytes used by container # * 'count'<~Integer>: - Number of items in container # * 'name'<~String>: - Name of container def get_containers(options = {}) options = options.reject { |_key, value| value.nil? } request( :expects => [200, 204], :method => 'GET', :path => '', :query => {'format' => 'json'}.merge!(options) ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/get_object.rb000066400000000000000000000012241476630434000255450ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Get details for object # # ==== Parameters # * container<~String> - Name of container to look in # * object<~String> - Name of object to look for # def get_object(container, object, &block) params = { :expects => 200, :method => 'GET', :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" } if block_given? params[:response_block] = block end request(params, false) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/get_object_http_url.rb000066400000000000000000000012561476630434000274730ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Get an expiring object http url # # ==== Parameters # * container<~String> - Name of container containing object # * object<~String> - Name of object to get expiring url for # * expires<~Time> - An expiry time for this url # # ==== Returns # * response<~Excon::Response>: # * body<~String> - url for object def get_object_http_url(container, object, expires, options = {}) create_temp_url(container, object, expires, "GET", {:port => 80}.merge(options).merge(:scheme => "http")) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/get_object_https_url.rb000066400000000000000000000071151476630434000276560ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Get an expiring object https url from Cloud Files # # ==== Parameters # * container<~String> - Name of container containing object # * object<~String> - Name of object to get expiring url for # * expires<~Time> - An expiry time for this url # # ==== Returns # * response<~Excon::Response>: # * body<~String> - url for object def get_object_https_url(container, object, expires, options = {}) create_temp_url(container, object, expires, "GET", {:port => 443}.merge(options).merge(:scheme => "https")) end # creates a temporary url # # ==== Parameters # * container<~String> - Name of container containing object # * object<~String> - Name of object to get expiring url for # * expires<~Time> - An expiry time for this url # * method<~String> - The method to use for accessing the object (GET, PUT, HEAD) # * options<~Hash> - An optional options hash # * 'scheme'<~String> - The scheme to use (http, https) # * 'host'<~String> - The host to use # * 'port'<~Integer> - The port to use # * 'filename'<~String> - Filename returned Content-Disposition response header # # ==== Returns # * response<~Excon::Response>: # * body<~String> - url for object # # ==== See Also # http://docs.rackspace.com/files/api/v1/cf-devguide/content/Create_TempURL-d1a444.html # https://developer.openstack.org/api-ref/object-store/?expanded=get-object-content-and-metadata-detail#get-object-content-and-metadata def create_temp_url(container, object, expires, method, options = {}) raise ArgumentError, "Insufficient parameters specified." unless container && object && expires && method raise ArgumentError, "Storage must be instantiated with the :openstack_temp_url_key option" if @openstack_temp_url_key.nil? scheme = options[:scheme] || @openstack_management_uri.scheme host = options[:host] || @openstack_management_uri.host port = options[:port] || @openstack_management_uri.port # POST not allowed allowed_methods = %w(GET PUT HEAD) unless allowed_methods.include?(method) raise ArgumentError, "Invalid method '#{method}' specified. Valid methods are: #{allowed_methods.join(', ')}" end expires = expires.to_i object_path_escaped = "#{@path}/#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object, "/")}" object_path_unescaped = "#{@path}/#{Fog::OpenStack.escape(container)}/#{object}" string_to_sign = "#{method}\n#{expires}\n#{object_path_unescaped}" hmac = Fog::HMAC.new('sha1', @openstack_temp_url_key.to_s) query = { temp_url_sig: sig_to_hex(hmac.sign(string_to_sign)), temp_url_expires: expires } query[:filename] = options[:filename] if options[:filename] temp_url_options = { :scheme => scheme, :host => host, :port => port, :path => object_path_escaped, :query => query.map { |k, v| "#{k}=#{v}" }.join('&') } URI::Generic.build(temp_url_options).to_s end private def sig_to_hex(str) str.unpack("C*").map do |c| c.to_s(16) end.map do |h| h.size == 1 ? "0#{h}" : h end.join end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/head_container.rb000066400000000000000000000013501476630434000264030ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # List number of objects and total bytes stored # # ==== Parameters # * container<~String> - Name of container to retrieve info for # # ==== Returns # * response<~Excon::Response>: # * headers<~Hash>: # * 'X-Container-Object-Count'<~String> - Count of containers # * 'X-Container-Bytes-Used'<~String> - Bytes used def head_container(container) request( :expects => 204, :method => 'HEAD', :path => Fog::OpenStack.escape(container), :query => {'format' => 'json'} ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/head_containers.rb000066400000000000000000000011311476630434000265630ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # List number of containers and total bytes stored # # ==== Returns # * response<~Excon::Response>: # * headers<~Hash>: # * 'X-Account-Container-Count'<~String> - Count of containers # * 'X-Account-Bytes-Used'<~String> - Bytes used def head_containers request( :expects => 200..299, :method => 'HEAD', :path => '', :query => {'format' => 'json'} ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/head_object.rb000066400000000000000000000010761476630434000256740ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Get headers for object # # ==== Parameters # * container<~String> - Name of container to look in # * object<~String> - Name of object to look for # def head_object(container, object) request({ :expects => 200, :method => 'HEAD', :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" }, false) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/post_object.rb000066400000000000000000000013231476630434000257530ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Update object metadata # # ==== Parameters # * container<~String> - Name for container, should be < 256 bytes and must not contain '/' # * object<~String> - Name for object # * headers<~Hash> - metadata headers for object. Defaults to {}. # def post_object(container, object, headers = {}) params = { :expects => 202, :headers => headers, :method => 'POST', :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" } request(params) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/post_set_meta_temp_url_key.rb000066400000000000000000000021031476630434000310620ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Set the account wide Temp URL Key. This is a secret key that's # used to generate signed expiring URLs. # # Once the key has been set with this request you should create new # Storage objects with the :openstack_temp_url_key option then use # the get_object_https_url method to generate expiring URLs. # # *** CAUTION *** changing this secret key will invalidate any expiring # URLS generated with old keys. # # ==== Parameters # * key<~String> - The new Temp URL Key # # ==== Returns # * response<~Excon::Response> # # ==== See Also # http://docs.rackspace.com/files/api/v1/cf-devguide/content/Set_Account_Metadata-d1a4460.html def post_set_meta_temp_url_key(key) request( :expects => [201, 202, 204], :method => 'POST', :headers => {'X-Account-Meta-Temp-Url-Key' => key} ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/public_url.rb000066400000000000000000000015131476630434000256010ustar00rootroot00000000000000module Fog module OpenStack class Storage module PublicUrl # Get public_url for an object # # ==== Parameters # * container<~String> - Name of container to look in # * object<~String> - Name of object to look for # def public_url(container = nil, object = nil) return nil if container.nil? u = "#{url}/#{Fog::OpenStack.escape(container)}" u << "/#{Fog::OpenStack.escape(object)}" unless object.nil? u end private def url "#{@openstack_management_uri.scheme}://#{@openstack_management_uri.host}:"\ "#{@openstack_management_uri.port}#{@path}" end end class Real include PublicUrl end class Mock include PublicUrl end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/put_container.rb000066400000000000000000000012731476630434000263160ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Create a new container # # ==== Parameters # * name<~String> - Name for container, should be < 256 bytes and must not contain '/' # def put_container(name, options = {}) headers = options[:headers] || {} headers['X-Container-Read'] = '.r:*' if options[:public] headers['X-Remove-Container-Read'] = 'x' if options[:public] == false request( :expects => [201, 202], :method => 'PUT', :path => Fog::OpenStack.escape(name), :headers => headers ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/put_dynamic_obj_manifest.rb000066400000000000000000000042241476630434000304770ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Create a new dynamic large object manifest # # Creates an object with a +X-Object-Manifest+ header that specifies the common prefix ("/") # for all uploaded segments. Retrieving the manifest object streams all segments matching this prefix. # Segments must sort in the order they should be concatenated. Note that any future objects stored in the container # along with the segments that match the prefix will be included when retrieving the manifest object. # # All segments must be stored in the same container, but may be in a different container than the manifest object. # The default +X-Object-Manifest+ header is set to "+container+/+object+", but may be overridden in +options+ # to specify the prefix and/or the container where segments were stored. # If overridden, names should be CGI escaped (excluding spaces) if needed (see {Fog::OpenStack.escape}). # # @param container [String] Name for container where +object+ will be stored. Should be < 256 bytes and must not contain '/' # @param object [String] Name for manifest object. # @param options [Hash] Config headers for +object+. # @option options [String] 'X-Object-Manifest' ("container/object") "/" for segment objects. # # @raise [Fog::OpenStack::Storage::NotFound] HTTP 404 # @raise [Excon::Errors::BadRequest] HTTP 400 # @raise [Excon::Errors::Unauthorized] HTTP 401 # @raise [Excon::Errors::HTTPStatusError] # # @see http://docs.openstack.org/api/openstack-object-storage/1.0/content/dynamic-large-object-creation.html def put_dynamic_obj_manifest(container, object, options = {}) path = "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" headers = {'X-Object-Manifest' => path}.merge(options) request( :expects => 201, :headers => headers, :method => 'PUT', :path => path ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/put_object.rb000066400000000000000000000037041476630434000256030ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Create a new object # # When passed a block, it will make a chunked request, calling # the block for chunks until it returns an empty string. # In this case the data parameter is ignored. # # ==== Parameters # * container<~String> - Name for container, should be < 256 bytes and must not contain '/' # * object<~String> - Name for object # * data<~String|File> - data to upload # * options<~Hash> - config headers for object. Defaults to {}. # * block<~Proc> - chunker # def put_object(container, object, data, options = {}, &block) if block_given? params = {:request_block => block} headers = options else data = Fog::Storage.parse_data(data) headers = data[:headers].merge!(options) params = {:body => data[:body]} end params.merge!( :expects => [201, 202], :idempotent => !params[:request_block], :headers => headers, :method => 'PUT', :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}" ) request(params) end end class Mock require 'digest' def put_object(container, object, data, options = {}, &block) dgst = Digest::MD5.new if block_given? Kernel.loop do chunk = yield break if chunk.empty? dgst.update chunk end elsif data.kind_of?(String) dgst.update data else dgst.file data end response = Excon::Response.new response.status = 201 response.body = '' response.headers = {'ETag' => dgst.hexdigest} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/put_object_manifest.rb000066400000000000000000000005771476630434000274760ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Create a new dynamic large object manifest # # This is an alias for {#put_dynamic_obj_manifest} for backward compatibility. def put_object_manifest(container, object, options = {}) put_dynamic_obj_manifest(container, object, options) end end end end end fog-openstack-1.1.5/lib/fog/openstack/storage/requests/put_static_obj_manifest.rb000066400000000000000000000053331476630434000303440ustar00rootroot00000000000000module Fog module OpenStack class Storage class Real # Create a new static large object manifest. # # A static large object is similar to a dynamic large object. Whereas a GET for a dynamic large object manifest # will stream segments based on the manifest's +X-Object-Manifest+ object name prefix, a static large object # manifest streams segments which are defined by the user within the manifest. Information about each segment is # provided in +segments+ as an Array of Hash objects, ordered in the sequence which the segments should be streamed. # # When the SLO manifest is received, each segment's +etag+ and +size_bytes+ will be verified. # The +etag+ for each segment is returned in the response to {#put_object}, but may also be calculated. # e.g. +Digest::MD5.hexdigest(segment_data)+ # # The maximum number of segments for a static large object is 1000, and all segments (except the last) must be # at least 1 MiB in size. Unlike a dynamic large object, segments are not required to be in the same container. # # @example # segments = [ # { :path => 'segments_container/first_segment', # :etag => 'md5 for first_segment', # :size_bytes => 'byte size of first_segment' }, # { :path => 'segments_container/second_segment', # :etag => 'md5 for second_segment', # :size_bytes => 'byte size of second_segment' } # ] # put_static_obj_manifest('my_container', 'my_large_object', segments) # # @param container [String] Name for container where +object+ will be stored. # Should be < 256 bytes and must not contain '/' # @param object [String] Name for manifest object. # @param segments [Array] Segment data for the object. # @param options [Hash] Config headers for +object+. # # @raise [Fog::OpenStack::Storage::NotFound] HTTP 404 # @raise [Excon::Errors::BadRequest] HTTP 400 # @raise [Excon::Errors::Unauthorized] HTTP 401 # @raise [Excon::Errors::HTTPStatusError] # # @see http://docs.openstack.org/api/openstack-object-storage/1.0/content/static-large-objects.html def put_static_obj_manifest(container, object, segments, options = {}) request( :expects => 201, :method => 'PUT', :headers => options, :body => Fog::JSON.encode(segments), :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}", :query => {'multipart-manifest' => 'put'} ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/version.rb000066400000000000000000000001051476630434000216030ustar00rootroot00000000000000module Fog module OpenStack VERSION = '1.1.5'.freeze end end fog-openstack-1.1.5/lib/fog/openstack/volume.rb000066400000000000000000000031571476630434000214370ustar00rootroot00000000000000module Fog module OpenStack class Volume < Fog::Service autoload :V1, 'fog/openstack/volume/v1' autoload :V2, 'fog/openstack/volume/v2' autoload :V3, 'fog/openstack/volume/v3' @@recognizes = [:openstack_auth_token, :openstack_management_url, :persistent, :openstack_service_type, :openstack_service_name, :openstack_tenant, :openstack_tenant_id, :openstack_api_key, :openstack_username, :openstack_identity_endpoint, :current_user, :current_tenant, :openstack_region, :openstack_endpoint_type, :openstack_cache_ttl, :openstack_project_name, :openstack_project_id, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, :openstack_identity_api_version] # Fog::OpenStack::Image.new() will return a Fog::OpenStack::Volume::V3 or a Fog::OpenStack::Volume::V2 or a # Fog::OpenStack::Volume::V1, choosing the V3 by default, as V2 is deprecated since OpenStackWallaby and V1 is # deprecated since OpenStack Juno def self.new(args = {}) @openstack_auth_uri = URI.parse(args[:openstack_auth_url]) if args[:openstack_auth_url] if inspect == 'Fog::OpenStack::Volume' Fog::OpenStack::Volume::V3.new(args) \ || Fog::OpenStack::Volume::V2.new(args) \ || Fog::OpenStack::Volume::V1.new(args) else super end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/000077500000000000000000000000001476630434000211045ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/models/000077500000000000000000000000001476630434000223675ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/models/availability_zone.rb000066400000000000000000000002461476630434000264230ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class AvailabilityZone < Fog::OpenStack::Model end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/availability_zones.rb000066400000000000000000000004421476630434000266040ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module AvailabilityZones def all(options = {}) data = service.list_zones(options) load_response(data, 'availabilityZoneInfo') end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/backup.rb000066400000000000000000000020761476630434000241660ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class Backup < Fog::OpenStack::Model attribute :availability_zone attribute :container attribute :created_at attribute :description attribute :fail_reason attribute :name attribute :object_count attribute :size attribute :status attribute :volume_id attribute :is_incremental attribute :has_dependent_backups def create requires :name, :volume_id data = service.create_backup(attributes) merge_attributes(data.body['backup']) true end def destroy requires :id service.delete_backup(id) true end def restore(volume_id = nil, name = nil) requires :id service.restore_backup(id, volume_id, name) true end def volume requires :id service.get_volume_details(volume_id).body['volume'] end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/backups.rb000066400000000000000000000011311476630434000243400ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module Backups def all(options = {}) load_response(service.list_backups_detailed(options), 'backups') end def summary(options = {}) load_response(service.list_backups(options), 'backups') end def get(backup_id) backup = service.get_backup_details(backup_id).body['backup'] if backup new(backup) end rescue Fog::OpenStack::Volume::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/snapshot.rb000066400000000000000000000016271476630434000245610ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class Snapshot < Fog::OpenStack::Model def update(data) requires :id response = service.update_snapshot(id, data) merge_attributes(response.body['snapshot']) self end def destroy requires :id service.delete_snapshot(id) true end # Existing keys have values updated and new key-value pairs are created, but none are deleted def update_metadata(metadata) requires :id service.update_snapshot_metadata(id, metadata) true end # Delete one specific key-value pair by specifying the key name def delete_metadata(key_name) requires :id service.delete_snapshot_metadata(id, key_name) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/snapshots.rb000066400000000000000000000011631476630434000247370ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module Snapshots def all(options = {}) load_response(service.list_snapshots_detailed(options), 'snapshots') end def summary(options = {}) load_response(service.list_snapshots(options), 'snapshots') end def get(snapshots_id) snapshot = service.get_snapshot_details(snapshots_id).body['snapshot'] if snapshot new(snapshot) end rescue Fog::OpenStack::Volume::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/transfer.rb000066400000000000000000000012131476630434000245350ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class Transfer < Fog::OpenStack::Model def save requires :name, :volume_id data = service.create_transfer(volume_id, :name => name) merge_attributes(data.body['transfer']) true end def destroy requires :id service.delete_transfer(id) true end def initialize(attributes) # Old 'connection' is renamed as service and should be used instead prepare_service_value(attributes) super end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/transfers.rb000066400000000000000000000017411476630434000247260ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module Transfers def all(options = {}) load_response(service.list_transfers_detailed(options), 'transfers') end def summary(options = {}) load_response(service.list_transfers(options), 'transfers') end def get(transfer_id) if transfer = service.get_transfer_details(transfer_id).body['transfer'] new(transfer) end rescue Fog::OpenStack::Volume::NotFound nil end def accept(transfer_id, auth_key) # NOTE: This is NOT a method on the Transfer object, since the # receiver cannot see the transfer object in the get_transfer_details # or list_transfers(_detailed) requests. if transfer = service.accept_transfer(transfer_id, auth_key).body['transfer'] new(transfer) end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/volume.rb000066400000000000000000000034121476630434000242230ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class Volume < Fog::OpenStack::Model attribute :metadata attribute :status attribute :size attribute :volume_type, :aliases => %w(volumeType type) attribute :snapshot_id, :aliases => 'snapshotId' attribute :imageRef, :aliases => 'image_id' attribute :availability_zone, :aliases => 'availabilityZone' attribute :created_at, :aliases => 'createdAt' attribute :attachments attribute :source_volid def destroy requires :id service.delete_volume(id) true end def extend(size) requires :id service.extend_volume(id, size) true end def ready? status == 'available' end def reset_status(status) requires :id service.action(id, 'os-reset_status' => {:status => status}) end def create_metadata(metadata) replace_metadata(metadata) end # Existing keys have values updated and new key-value pairs are created, but none are deleted def update_metadata(metadata) requires :id service.update_metadata(id, metadata) true end # All existing key-value pairs are deleted and replaced with the key-value pairs specified here def replace_metadata(metadata) requires :id service.replace_metadata(id, metadata) true end # Delete one specific key-value pair by specifying the key name def delete_metadata(key_name) requires :id service.delete_metadata(id, key_name) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/volume_type.rb000066400000000000000000000012571476630434000252710ustar00rootroot00000000000000require 'fog/openstack/models/model' module Fog module OpenStack class Volume class VolumeType < Fog::OpenStack::Model attribute :extra_specs def create requires :name response = service.create_volume_type(attributes) merge_attributes(response.body['volume_type']) self end def update requires :id response = service.update_volume_type(id, attributes) merge_attributes(response.body['volume_type']) self end def destroy requires :id service.delete_volume_type(id) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/volume_types.rb000066400000000000000000000010301476630434000254410ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module VolumeTypes def all(options = {}) response = service.list_volume_types(options) load_response(response, 'volume_types') end def get(volume_type_id) if volume_type = service.get_volume_type_details(volume_type_id).body['volume_type'] new(volume_type) end rescue Fog::OpenStack::Volume::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/models/volumes.rb000066400000000000000000000023041476630434000244050ustar00rootroot00000000000000require 'fog/openstack/models/collection' module Fog module OpenStack class Volume module Volumes def all(options = {}) # the parameter has been "detailed = true" before. Make sure we are # backwards compatible detailed = options.kind_of?(Hash) ? options.delete(:detailed) : options if detailed.nil? || detailed # This method gives details by default, unless false or {:detailed => false} is passed load_response(service.list_volumes_detailed(options), 'volumes') else Fog::Logger.deprecation('Calling OpenStack[:volume].volumes.all(false) or volumes.all(:detailed => false) '\ ' is deprecated, call .volumes.summary instead') load_response(service.list_volumes(options), 'volumes') end end def summary(options = {}) load_response(service.list_volumes(options), 'volumes') end def get(volume_id) if volume = service.get_volume_details(volume_id).body['volume'] new(volume) end rescue Fog::OpenStack::Volume::NotFound nil end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/000077500000000000000000000000001476630434000227575ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/requests/accept_transfer.rb000066400000000000000000000007371476630434000264560ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def accept_transfer(transfer_id, auth_key) data = { 'accept' => { 'auth_key' => auth_key } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "os-volume-transfer/#{transfer_id}/accept" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/action.rb000066400000000000000000000005101476630434000245550ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def action(id, data) request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "volumes/#{id}/action" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/create_backup.rb000066400000000000000000000022321476630434000260730ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def create_backup(attributes) desired_options = [ :container, :name, :description, :volume_id, :incremental, :force, ] # Filter only allowed creation attributes data = { :backup => attributes.select { |key, _value| desired_options.include?(key.to_sym) } } request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => 'backups' ) end end module Mock def create_backup(_options = {}) response = Excon::Response.new response.status = 202 response.body = { "backup" => { "id" => "1", "volume_id" => "2", "name" => "backup 1", "status" => "available", "size" => 1, "object_count" => 16, "container" => "testcontainer", } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/create_snapshot.rb000066400000000000000000000005241476630434000264670ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real private def _create_snapshot(data) request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "snapshots" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/create_transfer.rb000066400000000000000000000010571476630434000264560ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def create_transfer(volume_id, options = {}) data = { 'transfer' => { 'volume_id' => volume_id } } if options[:name] data['transfer']['name'] = options[:name] end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => 'os-volume-transfer' ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/create_volume.rb000066400000000000000000000012271476630434000261400ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real private def _create_volume(data, options = {}) vanilla_options = [:snapshot_id, :imageRef, :volume_type, :source_volid, :availability_zone, :metadata, :multiattach] vanilla_options.select { |o| options[o] }.each do |key| data['volume'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "volumes" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/create_volume_type.rb000066400000000000000000000020261476630434000271770ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def create_volume_type(options = {}) data = { 'volume_type' => {} } vanilla_options = [:name, :extra_specs] vanilla_options.select { |o| options[o] }.each do |key| data['volume_type'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "types" ) end end module Mock def create_volume_type(_options = {}) response = Excon::Response.new response.status = 202 response.body = { "volume_type" => { "id" => "6685584b-1eac-4da6-b5c3-555430cf68ff", "name" => "vol-type-001", "extra_specs" => { "capabilities" => "gpu" } } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_backup.rb000066400000000000000000000007061476630434000260760ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_backup(backup_id) request( :expects => 202, :method => 'DELETE', :path => "backups/#{backup_id}" ) end end module Mock def delete_backup(_backup_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_metadata.rb000066400000000000000000000004761476630434000264150ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_metadata(volume_id, key_name) request( :expects => [200], :method => 'DELETE', :path => "volumes/#{volume_id}/metadata/#{key_name}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_snapshot.rb000066400000000000000000000007221476630434000264660ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_snapshot(snapshot_id) request( :expects => 202, :method => 'DELETE', :path => "snapshots/#{snapshot_id}" ) end end module Mock def delete_snapshot(_snapshot_id) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_snapshot_metadata.rb000066400000000000000000000005151476630434000303260ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_snapshot_metadata(snapshot_id, key_name) request( :expects => [200], :method => 'DELETE', :path => "snapshots/#{snapshot_id}/metadata/#{key_name}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_transfer.rb000066400000000000000000000004541476630434000264550ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_transfer(transfer_id) request( :expects => 202, :method => 'DELETE', :path => "os-volume-transfer/#{transfer_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_volume.rb000066400000000000000000000007061476630434000261400ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_volume(volume_id) request( :expects => 202, :method => 'DELETE', :path => "volumes/#{volume_id}" ) end end module Mock def delete_volume(_volume_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/delete_volume_type.rb000066400000000000000000000007351476630434000272030ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def delete_volume_type(volume_type_id) request( :expects => 202, :method => 'DELETE', :path => "types/#{volume_type_id}" ) end end module Mock def delete_volume_type(_volume_type_id) response = Excon::Response.new response.status = 204 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/extend_volume.rb000066400000000000000000000010771476630434000261670ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def extend_volume(volume_id, size) body = {'os-extend' => {'new_size' => size}} request( :expects => 202, :method => 'POST', :path => "volumes/#{volume_id}/action", :body => Fog::JSON.encode(body) ) end end module Mock def extend_volume(_volume_id, _size) response = Excon::Response.new response.status = 202 response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_backup_details.rb000066400000000000000000000014251476630434000271170ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_backup_details(backup_id) request( :expects => 200, :method => 'GET', :path => "backups/#{backup_id}" ) end end module Mock def get_backup_details(_backup_id) response = Excon::Response.new response.status = 200 response.body = { "backup" => { "id" => "1", "volume_id" => "2", "name" => "backup 1", "status" => "available", "size" => 1, "object_count" => 16, "container" => "testcontainer", } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_quota.rb000066400000000000000000000011041476630434000252700ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_quota(tenant_id) request( :expects => 200, :method => 'GET', :path => "/os-quota-sets/#{tenant_id}" ) end end module Mock def get_quota(tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota_set' => (data[:quota_updated] || data[:quota]).merge('id' => tenant_id) } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_quota_defaults.rb000066400000000000000000000011051476630434000271600ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_quota_defaults(tenant_id) request( :expects => 200, :method => 'GET', :path => "/os-quota-sets/#{tenant_id}/defaults" ) end end module Mock def get_quota_defaults(tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota_set' => data[:quota].merge('id' => tenant_id) } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_quota_usage.rb000066400000000000000000000020151476630434000264560ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_quota_usage(tenant_id) request( :expects => 200, :method => 'GET', :path => "/os-quota-sets/#{tenant_id}?usage=True" ) end end module Mock def get_quota_usage(tenant_id) response = Excon::Response.new response.status = 200 response.body = { 'quota_set' => { 'gigabytes' => { 'reserved' => 0, 'limit' => -1, 'in_use' => 160 }, 'snapshots' => { 'reserved' => 0, 'limit' => 50, 'in_use' => 3 }, 'volumes' => { 'reserved' => 0, 'limit' => 50, 'in_use' => 5 }, 'id' => tenant_id } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_snapshot_details.rb000066400000000000000000000004451476630434000275120ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_snapshot_details(snapshot_id) request( :expects => 200, :method => 'GET', :path => "snapshots/#{snapshot_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_transfer_details.rb000066400000000000000000000005361476630434000275000ustar00rootroot00000000000000module Fog module OpenStack class Volume # no Mock needed, test coverage in RSpec module Real def get_transfer_details(transfer_id) request( :expects => 200, :method => 'GET', :path => "os-volume-transfer/#{transfer_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_volume_details.rb000066400000000000000000000004351476630434000271610ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_volume_details(volume_id) request( :expects => 200, :method => 'GET', :path => "volumes/#{volume_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/get_volume_type_details.rb000066400000000000000000000013661476630434000302260ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def get_volume_type_details(volume_type_id) request( :expects => 200, :method => 'GET', :path => "types/#{volume_type_id}" ) end end module Mock def get_volume_type_details(_volume_type_id) response = Excon::Response.new response.status = 200 response.body = { "volume_type" => { "id" => "1", "name" => "type 1", "extra_specs" => { "volume_backend_name" => "type 1 backend name" } } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_backups.rb000066400000000000000000000004561476630434000257740ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_backups(options = {}) request( :expects => 200, :method => 'GET', :path => 'backups', :query => options ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_backups_detailed.rb000066400000000000000000000022001476630434000276140ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_backups_detailed(options = {}) request( :expects => 200, :method => 'GET', :path => 'backups/detail', :query => options ) end end module Mock def list_backups_detailed(_options = {}) response = Excon::Response.new response.status = 200 data[:backups] ||= [ { "id" => "1", "volume_id" => "2", "name" => "backup 1", "status" => "available", "size" => 1, "object_count" => 16, "container" => "testcontainer", }, { "id" => "2", "volume_id" => "2", "name" => "backup 2", "status" => "available", "size" => 1, "object_count" => 16, "container" => "testcontainer", } ] response.body = { 'backups' => data[:backups] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_snapshots.rb000066400000000000000000000023771476630434000263720ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_snapshots(options = true, options_deprecated = {}) if options.kind_of?(Hash) path = 'snapshots' query = options else # Backwards compatibility layer, when 'detailed' boolean was sent as first param if options Fog::Logger.deprecation('Calling OpenStack[:volume].list_snapshots(true) is deprecated, use .list_snapshots_detailed instead') else Fog::Logger.deprecation('Calling OpenStack[:volume].list_snapshots(false) is deprecated, use .list_snapshots({}) instead') end path = options ? 'snapshots/detail' : 'snapshots' query = options_deprecated end request( :expects => 200, :method => 'GET', :path => path, :query => query ) end end module Mock def list_snapshots(_detailed = true, _options = {}) response = Excon::Response.new response.status = 200 response.body = { 'snapshots' => [get_snapshot_details.body["snapshot"]] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_snapshots_detailed.rb000066400000000000000000000011451476630434000302150ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_snapshots_detailed(options = {}) request( :expects => 200, :method => 'GET', :path => 'snapshots/detail', :query => options ) end end module Mock def list_snapshots_detailed(_options = {}) response = Excon::Response.new response.status = 200 response.body = { 'snapshots' => [get_snapshot_details.body["snapshot"]] } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_transfers.rb000066400000000000000000000005531476630434000263510ustar00rootroot00000000000000module Fog module OpenStack class Volume # no Mock needed, test coverage in RSpec module Real def list_transfers(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-volume-transfer', :query => options ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_transfers_detailed.rb000066400000000000000000000005731476630434000302060ustar00rootroot00000000000000module Fog module OpenStack class Volume # no Mock needed, test coverage in RSpec module Real def list_transfers_detailed(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-volume-transfer/detail', :query => options ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_volume_types.rb000066400000000000000000000020101476630434000270630ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_volume_types(options = {}) request( :expects => 200, :method => 'GET', :path => 'types', :query => options ) end end module Mock def list_volume_types(_options = {}) response = Excon::Response.new response.status = 200 data[:volume_types] ||= [ { "id" => "1", "name" => "type 1", "extra_specs" => { "volume_backend_name" => "type 1 backend name" } }, { "id" => "2", "name" => "type 2", "extra_specs" => { "volume_backend_name" => "type 2 backend name" } } ] response.body = {'volume_types' => data[:volume_types]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_volumes.rb000066400000000000000000000017031476630434000260320ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_volumes(options = true, options_deprecated = {}) if options.kind_of?(Hash) path = 'volumes' query = options else # Backwards compatibility layer, when 'detailed' boolean was sent as first param if options Fog::Logger.deprecation('Calling OpenStack[:volume].list_volumes(true) is deprecated, use .list_volumes_detailed instead') else Fog::Logger.deprecation('Calling OpenStack[:volume].list_volumes(false) is deprecated, use .list_volumes({}) instead') end path = options ? 'volumes/detail' : 'volumes' query = options_deprecated end request( :expects => 200, :method => 'GET', :path => path, :query => query ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_volumes_detailed.rb000066400000000000000000000004761476630434000276730ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_volumes_detailed(options = {}) request( :expects => 200, :method => 'GET', :path => 'volumes/detail', :query => options ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/list_zones.rb000066400000000000000000000012711476630434000254760ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def list_zones(options = {}) request( :expects => 200, :method => 'GET', :path => 'os-availability-zone.json', :query => options ) end end module Mock def list_zones(_options = {}) Excon::Response.new( :body => { "availabilityZoneInfo" => [ { "zoneState" => {"available" => true}, "zoneName" => "nova" } ] }, :status => 200 ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/replace_metadata.rb000066400000000000000000000006501476630434000265600ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def replace_metadata(volume_id, metadata = {}) data = { 'metadata' => metadata } request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'PUT', :path => "volumes/#{volume_id}/metadata" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/restore_backup.rb000066400000000000000000000006761476630434000263250ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def restore_backup(backup_id, volume_id = nil, name = nil) data = {'restore' => {'volume_id' => volume_id, 'name' => name}} request( :expects => 202, :method => 'POST', :path => "backups/#{backup_id}/restore", :body => Fog::JSON.encode(data) ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/set_tenant.rb000066400000000000000000000005211476630434000254460ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def set_tenant(tenant) @openstack_must_reauthenticate = true @openstack_tenant = tenant.to_s authenticate end end module Mock def set_tenant(_tenant) true end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/snapshot_action.rb000066400000000000000000000005231476630434000265000ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def snapshot_action(id, data) request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'POST', :path => "snapshots/#{id}/action" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_metadata.rb000066400000000000000000000006541476630434000264330ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def update_metadata(volume_id, metadata = {}) data = { 'metadata' => metadata } request( :body => Fog::JSON.encode(data), :expects => [200,202], :method => 'POST', :path => "volumes/#{volume_id}/metadata" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_quota.rb000066400000000000000000000012431476630434000257770ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def update_quota(tenant_id, options = {}) request( :body => Fog::JSON.encode('quota_set' => options), :expects => 200, :method => 'PUT', :path => "/os-quota-sets/#{tenant_id}" ) end end module Mock def update_quota(_tenant_id, options = {}) data[:quota_updated] = data[:quota].merge options response = Excon::Response.new response.status = 200 response.body = {'quota_set' => data[:quota_updated]} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_snapshot.rb000066400000000000000000000025061476630434000265100ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def update_snapshot(snapshot_id, data = {}) request( :body => Fog::JSON.encode('snapshot' => data), :expects => 200, :method => 'PUT', :path => "snapshots/#{snapshot_id}" ) end end module Mock def update_snapshot(snapshot_id, options = {}) unless snapshot_id raise ArgumentError, 'snapshot_id is required' end response = Excon::Response.new if snapshot = data[:snapshots][snapshot_id] response.status = 200 snapshot['display_name'] = options['display_name'] if options['display_name'] snapshot['display_description'] = options['display_description'] if options['display_description'] snapshot['name'] = options['name'] if options['name'] snapshot['description'] = options['description'] if options['description'] snapshot['metadata'] = options['metadata'] if options['metadata'] response.body = {'snapshot' => snapshot} response else raise Fog::HP::BlockStorageV2::NotFound end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_snapshot_metadata.rb000066400000000000000000000006671476630434000303560ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def update_snapshot_metadata(snapshot_id, metadata = {}) data = { 'metadata' => metadata } request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "snapshots/#{snapshot_id}/metadata" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_volume.rb000066400000000000000000000005041476630434000261540ustar00rootroot00000000000000module Fog module OpenStack class Volume module Mock def update_volume(volume_id, data = {}) response = Excon::Response.new response.status = 200 response.body = {'volume' => data.merge('id' => volume_id)} response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/requests/update_volume_type.rb000066400000000000000000000021101476630434000272100ustar00rootroot00000000000000module Fog module OpenStack class Volume module Real def update_volume_type(volume_type_id, options = {}) data = { 'volume_type' => {} } vanilla_options = [:name, :extra_specs] vanilla_options.select { |o| options[o] }.each do |key| data['volume_type'][key] = options[key] end request( :body => Fog::JSON.encode(data), :expects => [200, 202], :method => 'PUT', :path => "types/#{volume_type_id}" ) end end module Mock def update_volume_type(_volume_type_id, _options = {}) response = Excon::Response.new response.status = 202 response.body = { "volume_type" => { "id" => "6685584b-1eac-4da6-b5c3-555430cf68ff", "name" => "vol-type-001", "extra_specs" => { "capabilities" => "gpu" } } } response end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1.rb000066400000000000000000000043371476630434000217660ustar00rootroot00000000000000require 'fog/openstack/core' require 'fog/openstack/volume' module Fog module OpenStack class Volume class V1 < Fog::OpenStack::Volume SUPPORTED_VERSIONS = /v1(\.(0-9))*/ requires :openstack_auth_url recognizes *@@recognizes model_path 'fog/openstack/volume/v1/models' model :volume collection :volumes model :availability_zone collection :availability_zones model :volume_type collection :volume_types model :snapshot collection :snapshots model :transfer collection :transfers model :backup collection :backups request_path 'fog/openstack/volume/v1/requests' # Volume request :list_volumes request :list_volumes_detailed request :create_volume request :update_volume request :get_volume_details request :extend_volume request :delete_volume request :list_zones request :list_volume_types request :create_volume_type request :delete_volume_type request :get_volume_type_details request :create_snapshot request :update_snapshot request :list_snapshots request :list_snapshots_detailed request :get_snapshot_details request :delete_snapshot request :update_snapshot_metadata request :delete_snapshot_metadata request :list_transfers request :list_transfers_detailed request :create_transfer request :get_transfer_details request :accept_transfer request :delete_transfer request :list_backups request :list_backups_detailed request :create_backup request :get_backup_details request :restore_backup request :delete_backup request :update_quota request :get_quota request :get_quota_defaults request :get_quota_usage request :update_metadata request :replace_metadata request :delete_metadata request :set_tenant request :action autoload :Mock, 'fog/openstack/volume/v1/mock' autoload :Real, 'fog/openstack/volume/v1/real' end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/000077500000000000000000000000001476630434000214325ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v1/mock.rb000066400000000000000000000042171476630434000227140ustar00rootroot00000000000000module Fog module OpenStack class Volume class V1 < Fog::OpenStack::Volume class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {}, :quota => { 'gigabytes' => 1000, 'volumes' => 10, 'snapshots' => 10 } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8776 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/000077500000000000000000000000001476630434000227155ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/availability_zone.rb000066400000000000000000000004461476630434000267530ustar00rootroot00000000000000require 'fog/openstack/volume/models/availability_zone' module Fog module OpenStack class Volume class V1 class AvailabilityZone < Fog::OpenStack::Volume::AvailabilityZone identity :zoneName attribute :zoneState end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/availability_zones.rb000066400000000000000000000006731476630434000271400ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/availability_zone' require 'fog/openstack/volume/models/availability_zones' module Fog module OpenStack class Volume class V1 class AvailabilityZones < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::AvailabilityZone include Fog::OpenStack::Volume::AvailabilityZones end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/backup.rb000066400000000000000000000004451476630434000245120ustar00rootroot00000000000000require 'fog/openstack/volume/models/backup' module Fog module OpenStack class Volume class V1 class Backup < Fog::OpenStack::Volume::Backup identity :id superclass.attributes.each { |attrib| attribute attrib } end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/backups.rb000066400000000000000000000006071476630434000246750ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/backup' require 'fog/openstack/volume/models/backups' module Fog module OpenStack class Volume class V1 class Backups < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::Backup include Fog::OpenStack::Volume::Backups end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/snapshot.rb000066400000000000000000000024601476630434000251030ustar00rootroot00000000000000require 'fog/openstack/volume/models/snapshot' module Fog module OpenStack class Volume class V1 class Snapshot < Fog::OpenStack::Volume::Snapshot identity :id attribute :display_name attribute :status attribute :display_description attribute :metadata attribute :force attribute :size def save requires :display_name data = if id.nil? service.create_snapshot(attributes[:volume_id], display_name, display_description, force) else service.update_snapshot(id, attributes.reject { |k, _v| k == :id }) end merge_attributes(data.body['snapshot']) true end def create requires :display_name # volume_id, name, description, force=false response = service.create_snapshot(attributes[:volume_id], attributes[:display_name], attributes[:display_description], attributes[:force]) merge_attributes(response.body['snapshot']) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/snapshots.rb000066400000000000000000000006211476630434000252630ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/snapshot' require 'fog/openstack/volume/models/snapshots' module Fog module OpenStack class Volume class V1 class Snapshots < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::Snapshot include Fog::OpenStack::Volume::Snapshots end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/transfer.rb000066400000000000000000000006471476630434000250750ustar00rootroot00000000000000require 'fog/openstack/volume/models/transfer' module Fog module OpenStack class Volume class V1 class Transfer < Fog::OpenStack::Volume::Transfer identity :id attribute :auth_key, :aliases => 'authKey' attribute :created_at, :aliases => 'createdAt' attribute :name attribute :volume_id, :aliases => 'volumeId' end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/transfers.rb000066400000000000000000000006211476630434000252500ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/transfer' require 'fog/openstack/volume/models/transfers' module Fog module OpenStack class Volume class V1 class Transfers < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::Transfer include Fog::OpenStack::Volume::Transfers end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/volume.rb000066400000000000000000000022621476630434000245530ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume' module Fog module OpenStack class Volume class V1 class Volume < Fog::OpenStack::Volume::Volume identity :id superclass.attributes.each { |attrib| attribute attrib } attribute :display_name, :aliases => 'displayName' attribute :display_description, :aliases => 'displayDescription' attribute :tenant_id, :aliases => 'os-vol-tenant-attr:tenant_id' def save requires :display_name, :size data = if id.nil? service.create_volume(display_name, display_description, size, attributes) else attrib = attributes.select { |key| %i(display_name display_description metadata).include?(key) } service.update_volume(id, attrib) end merge_attributes(data.body['volume']) true end def update(attr = nil) requires :id merge_attributes( service.update_volume(id, attr || attributes).body['volume'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/volume_type.rb000066400000000000000000000004621476630434000256140ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume_type' module Fog module OpenStack class Volume class V1 class VolumeType < Fog::OpenStack::Volume::VolumeType identity :id attribute :name attribute :volume_backend_name end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/volume_types.rb000066400000000000000000000006351476630434000260010ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/volume_type' require 'fog/openstack/volume/models/volume_types' module Fog module OpenStack class Volume class V1 class VolumeTypes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::VolumeType include Fog::OpenStack::Volume::VolumeTypes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/models/volumes.rb000066400000000000000000000006071476630434000247370ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v1/models/volume' require 'fog/openstack/volume/models/volumes' module Fog module OpenStack class Volume class V1 class Volumes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V1::Volume include Fog::OpenStack::Volume::Volumes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/real.rb000066400000000000000000000006511476630434000227040ustar00rootroot00000000000000module Fog module OpenStack class Volume class V1 < Fog::OpenStack::Volume class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Volume::NotFound end def default_endtpoint_type 'admin' end def default_service_type %w[volume] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/000077500000000000000000000000001476630434000233055ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/accept_transfer.rb000066400000000000000000000001501476630434000267710ustar00rootroot00000000000000require 'fog/openstack/volume/requests/accept_transfer' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/action.rb000066400000000000000000000001371476630434000251100ustar00rootroot00000000000000require 'fog/openstack/volume/requests/action' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/create_backup.rb000066400000000000000000000001461476630434000264230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_backup' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/create_snapshot.rb000066400000000000000000000024461476630434000270220ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_snapshot' module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real def create_snapshot(volume_id, name, description, force = false) data = { 'snapshot' => { 'volume_id' => volume_id, 'display_name' => name, 'display_description' => description, 'force' => force.nil? ? false : force } } _create_snapshot(data) end end class Mock def create_snapshot(volume_id, name, description, _force = false) response = Excon::Response.new response.status = 202 response.body = { "snapshot" => { "status" => "creating", "display_name" => name, "created_at" => Time.now, "display_description" => description, "volume_id" => volume_id, "id" => "5", "size" => 1 } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/create_transfer.rb000066400000000000000000000001501476630434000267750ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_transfer' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/create_volume.rb000066400000000000000000000030161476630434000264640ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume' module Fog module OpenStack class Volume class V1 class Real def create_volume(name, description, size, options = {}) data = { 'volume' => { 'display_name' => name, 'display_description' => description, 'size' => size } } _create_volume(data, options) end include Fog::OpenStack::Volume::Real end class Mock def create_volume(name, description, size, options = {}) response = Excon::Response.new response.status = 202 response.body = { 'volume' => { 'id' => Fog::Mock.random_numbers(2), 'display_name' => name, 'display_description' => description, 'metadata' => options['metadata'] || {}, 'size' => size, 'status' => 'creating', 'snapshot_id' => options[:snapshot_id] || nil, 'image_id' => options[:imageRef] || nil, 'volume_type' => nil, 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/create_volume_type.rb000066400000000000000000000001601476630434000275220ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume_type' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_backup.rb000066400000000000000000000001461476630434000264220ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_backup' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_metadata.rb000066400000000000000000000001501476630434000267300ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_metadata' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_snapshot.rb000066400000000000000000000001551476630434000270140ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_snapshot_metadata.rb000066400000000000000000000001611476630434000306510ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot_metadata' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_transfer.rb000066400000000000000000000001501476630434000267740ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_transfer' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_volume.rb000066400000000000000000000001531476630434000264620ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/delete_volume_type.rb000066400000000000000000000001601476630434000275210ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume_type' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/extend_volume.rb000066400000000000000000000001531476630434000265070ustar00rootroot00000000000000require 'fog/openstack/volume/requests/extend_volume' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_backup_details.rb000066400000000000000000000001531476630434000274420ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_backup_details' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_quota.rb000066400000000000000000000001471476630434000256240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_quota_defaults.rb000066400000000000000000000001601476630434000275060ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_defaults' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_quota_usage.rb000066400000000000000000000001551476630434000270070ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_usage' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_snapshot_details.rb000066400000000000000000000015611476630434000300400ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_snapshot_details' module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end class Mock def get_snapshot_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'snapshot' => { 'id' => '1', 'display_name' => 'Snapshot1', 'display_description' => 'Volume1 snapshot', 'size' => 1, 'volume_id' => '1', 'status' => 'available', 'created_at' => Time.now } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_transfer_details.rb000066400000000000000000000001551476630434000300230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_transfer_details' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_volume_details.rb000066400000000000000000000020431476630434000275040ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_details' module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end class Mock def get_volume_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'volume' => { 'id' => '1', 'display_name' => Fog::Mock.random_letters(rand(8) + 5), 'display_description' => Fog::Mock.random_letters(rand(12) + 10), 'size' => 3, 'volume_type' => nil, 'snapshot_id' => '4', 'status' => 'online', 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/get_volume_type_details.rb000066400000000000000000000001651476630434000305500ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_type_details' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_backups.rb000066400000000000000000000001451476630434000263150ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_backups_detailed.rb000066400000000000000000000001561476630434000301520ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups_detailed' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_snapshots.rb000066400000000000000000000001541476630434000267070ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_snapshots_detailed.rb000066400000000000000000000001651476630434000305440ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots_detailed' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_transfers.rb000066400000000000000000000001471476630434000266760ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_transfers_detailed.rb000066400000000000000000000001601476630434000305240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers_detailed' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_volume_types.rb000066400000000000000000000001571476630434000274230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volume_types' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_volumes.rb000066400000000000000000000031031476630434000263540ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes' module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes(_options = true, _options_deprecated = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "display_description" => "test 1 desc", "availability_zone" => "nova", "display_name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "display_description" => "test 2 desc", "availability_zone" => "nova", "display_name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_volumes_detailed.rb000066400000000000000000000030711476630434000302130ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes_detailed' module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes_detailed(_options = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "display_description" => "test 1 desc", "availability_zone" => "nova", "display_name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "display_description" => "test 2 desc", "availability_zone" => "nova", "display_name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/list_zones.rb000066400000000000000000000001501476630434000260170ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_zones' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/real.rb000066400000000000000000000002501476630434000245520ustar00rootroot00000000000000module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/real_mock.rb000066400000000000000000000003661476630434000255730ustar00rootroot00000000000000module Fog module OpenStack class Volume class V1 class Real include Fog::OpenStack::Volume::Real end class Mock include Fog::OpenStack::Volume::Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/replace_metadata.rb000066400000000000000000000001511476630434000271020ustar00rootroot00000000000000require 'fog/openstack/volume/requests/replace_metadata' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/restore_backup.rb000066400000000000000000000001471476630434000266440ustar00rootroot00000000000000require 'fog/openstack/volume/requests/restore_backup' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/set_tenant.rb000066400000000000000000000001501476630434000257720ustar00rootroot00000000000000require 'fog/openstack/volume/requests/set_tenant' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/update_metadata.rb000066400000000000000000000001501476630434000267500ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_metadata' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/update_quota.rb000066400000000000000000000001521476630434000263230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_quota' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/update_snapshot.rb000066400000000000000000000001501476630434000270270ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/update_snapshot_metadata.rb000066400000000000000000000001611476630434000306710ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot_metadata' require 'fog/openstack/volume/v1/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v1/requests/update_volume.rb000066400000000000000000000007061476630434000265060ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_volume' require 'fog/openstack/volume/v1/requests/real' module Fog module OpenStack class Volume module Real def update_volume(volume_id, data = {}) request( :body => Fog::JSON.encode('volume' => data), :expects => 200, :method => 'PUT', :path => "volumes/#{volume_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2.rb000066400000000000000000000044441476630434000217660ustar00rootroot00000000000000require 'fog/openstack/core' require 'fog/openstack/volume' module Fog module OpenStack class Volume class V2 < Fog::OpenStack::Volume SUPPORTED_VERSIONS = /v2(\.(0-9))*/ requires :openstack_auth_url recognizes *@@recognizes model_path 'fog/openstack/volume/v2/models' model :volume collection :volumes model :availability_zone collection :availability_zones model :volume_type collection :volume_types model :snapshot collection :snapshots model :transfer collection :transfers model :backup collection :backups request_path 'fog/openstack/volume/v2/requests' # Volume request :list_volumes request :list_volumes_detailed request :create_volume request :update_volume request :get_volume_details request :extend_volume request :delete_volume request :list_zones request :list_volume_types request :create_volume_type request :update_volume_type request :delete_volume_type request :get_volume_type_details request :create_snapshot request :update_snapshot request :list_snapshots request :list_snapshots_detailed request :get_snapshot_details request :delete_snapshot request :update_snapshot_metadata request :delete_snapshot_metadata request :list_transfers request :list_transfers_detailed request :create_transfer request :get_transfer_details request :accept_transfer request :delete_transfer request :list_backups request :list_backups_detailed request :create_backup request :get_backup_details request :restore_backup request :delete_backup request :update_quota request :get_quota request :get_quota_defaults request :get_quota_usage request :update_metadata request :replace_metadata request :delete_metadata request :set_tenant request :action request :snapshot_action autoload :Mock, 'fog/openstack/volume/v2/mock' autoload :Real, 'fog/openstack/volume/v2/real' end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/000077500000000000000000000000001476630434000214335ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v2/mock.rb000066400000000000000000000042171476630434000227150ustar00rootroot00000000000000module Fog module OpenStack class Volume class V2 < Fog::OpenStack::Volume class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {}, :quota => { 'gigabytes' => 1000, 'volumes' => 10, 'snapshots' => 10 } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8776 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/000077500000000000000000000000001476630434000227165ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/availability_zone.rb000066400000000000000000000004461476630434000267540ustar00rootroot00000000000000require 'fog/openstack/volume/models/availability_zone' module Fog module OpenStack class Volume class V2 class AvailabilityZone < Fog::OpenStack::Volume::AvailabilityZone identity :zoneName attribute :zoneState end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/availability_zones.rb000066400000000000000000000006731476630434000271410ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/availability_zone' require 'fog/openstack/volume/models/availability_zones' module Fog module OpenStack class Volume class V2 class AvailabilityZones < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::AvailabilityZone include Fog::OpenStack::Volume::AvailabilityZones end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/backup.rb000066400000000000000000000004451476630434000245130ustar00rootroot00000000000000require 'fog/openstack/volume/models/backup' module Fog module OpenStack class Volume class V2 class Backup < Fog::OpenStack::Volume::Backup identity :id superclass.attributes.each { |attrib| attribute attrib } end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/backups.rb000066400000000000000000000006071476630434000246760ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/backup' require 'fog/openstack/volume/models/backups' module Fog module OpenStack class Volume class V2 class Backups < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::Backup include Fog::OpenStack::Volume::Backups end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/snapshot.rb000066400000000000000000000023601476630434000251030ustar00rootroot00000000000000require 'fog/openstack/volume/models/snapshot' module Fog module OpenStack class Volume class V2 class Snapshot < Fog::OpenStack::Volume::Snapshot identity :id attribute :name attribute :status attribute :description attribute :metadata attribute :force attribute :size def save requires :name data = if id.nil? service.create_snapshot(attributes[:volume_id], name, description, force) else service.update_snapshot(id, attributes.reject { |k, _v| k == :id }) end merge_attributes(data.body['snapshot']) true end def create requires :name # volume_id, name, description, force=false response = service.create_snapshot(attributes[:volume_id], attributes[:name], attributes[:description], attributes[:force]) merge_attributes(response.body['snapshot']) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/snapshots.rb000066400000000000000000000006211476630434000252640ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/snapshot' require 'fog/openstack/volume/models/snapshots' module Fog module OpenStack class Volume class V2 class Snapshots < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::Snapshot include Fog::OpenStack::Volume::Snapshots end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/transfer.rb000066400000000000000000000006471476630434000250760ustar00rootroot00000000000000require 'fog/openstack/volume/models/transfer' module Fog module OpenStack class Volume class V2 class Transfer < Fog::OpenStack::Volume::Transfer identity :id attribute :auth_key, :aliases => 'authKey' attribute :created_at, :aliases => 'createdAt' attribute :name attribute :volume_id, :aliases => 'volumeId' end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/transfers.rb000066400000000000000000000006211476630434000252510ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/transfer' require 'fog/openstack/volume/models/transfers' module Fog module OpenStack class Volume class V2 class Transfers < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::Transfer include Fog::OpenStack::Volume::Transfers end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/volume.rb000066400000000000000000000020301476630434000245450ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume' module Fog module OpenStack class Volume class V2 class Volume < Fog::OpenStack::Volume::Volume identity :id superclass.attributes.each { |attrib| attribute attrib } attribute :name attribute :description attribute :tenant_id, :aliases => 'os-vol-tenant-attr:tenant_id' def save requires :name, :size data = if id.nil? service.create_volume(name, description, size, attributes) else service.update_volume(id, attributes.select { |key| %i(name description metadata).include?(key) }) end merge_attributes(data.body['volume']) true end def update(attr = nil) requires :id merge_attributes( service.update_volume(id, attr || attributes).body['volume'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/volume_type.rb000066400000000000000000000004621476630434000256150ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume_type' module Fog module OpenStack class Volume class V2 class VolumeType < Fog::OpenStack::Volume::VolumeType identity :id attribute :name attribute :volume_backend_name end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/volume_types.rb000066400000000000000000000006351476630434000260020ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/volume_type' require 'fog/openstack/volume/models/volume_types' module Fog module OpenStack class Volume class V2 class VolumeTypes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::VolumeType include Fog::OpenStack::Volume::VolumeTypes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/models/volumes.rb000066400000000000000000000006071476630434000247400ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v2/models/volume' require 'fog/openstack/volume/models/volumes' module Fog module OpenStack class Volume class V2 class Volumes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V2::Volume include Fog::OpenStack::Volume::Volumes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/real.rb000066400000000000000000000006531476630434000227070ustar00rootroot00000000000000module Fog module OpenStack class Volume class V2 < Fog::OpenStack::Volume class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Volume::NotFound end def default_endtpoint_type 'admin' end def default_service_type %w[volumev2] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/000077500000000000000000000000001476630434000233065ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/accept_transfer.rb000066400000000000000000000001501476630434000267720ustar00rootroot00000000000000require 'fog/openstack/volume/requests/accept_transfer' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/action.rb000066400000000000000000000001371476630434000251110ustar00rootroot00000000000000require 'fog/openstack/volume/requests/action' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/create_backup.rb000066400000000000000000000001461476630434000264240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_backup' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/create_snapshot.rb000066400000000000000000000023161476630434000270170ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_snapshot' module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real def create_snapshot(volume_id, name, description, force = false) data = { 'snapshot' => { 'volume_id' => volume_id, 'name' => name, 'description' => description, 'force' => force.nil? ? false : force } } _create_snapshot(data) end end class Mock def create_snapshot(volume_id, name, description, _force = false) response = Excon::Response.new response.status = 202 response.body = { "snapshot" => { "status" => "creating", "name" => name, "created_at" => Time.now, "description" => description, "volume_id" => volume_id, "id" => "5", "size" => 1 } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/create_transfer.rb000066400000000000000000000001501476630434000267760ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_transfer' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/create_volume.rb000066400000000000000000000027361476630434000264750ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume' module Fog module OpenStack class Volume class V2 class Real def create_volume(name, description, size, options = {}) data = { 'volume' => { 'name' => name, 'description' => description, 'size' => size } } _create_volume(data, options) end include Fog::OpenStack::Volume::Real end class Mock def create_volume(name, description, size, options = {}) response = Excon::Response.new response.status = 202 response.body = { 'volume' => { 'id' => Fog::Mock.random_numbers(2), 'name' => name, 'description' => description, 'metadata' => options['metadata'] || {}, 'size' => size, 'status' => 'creating', 'snapshot_id' => options[:snapshot_id] || nil, 'image_id' => options[:imageRef] || nil, 'volume_type' => nil, 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/create_volume_type.rb000066400000000000000000000001601476630434000275230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume_type' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_backup.rb000066400000000000000000000001461476630434000264230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_backup' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_metadata.rb000066400000000000000000000001501476630434000267310ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_metadata' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_snapshot.rb000066400000000000000000000001551476630434000270150ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_snapshot_metadata.rb000066400000000000000000000001611476630434000306520ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot_metadata' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_transfer.rb000066400000000000000000000001501476630434000267750ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_transfer' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_volume.rb000066400000000000000000000001531476630434000264630ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/delete_volume_type.rb000066400000000000000000000001601476630434000275220ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume_type' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/extend_volume.rb000066400000000000000000000001531476630434000265100ustar00rootroot00000000000000require 'fog/openstack/volume/requests/extend_volume' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_backup_details.rb000066400000000000000000000001531476630434000274430ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_backup_details' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_quota.rb000066400000000000000000000001471476630434000256250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_quota_defaults.rb000066400000000000000000000001601476630434000275070ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_defaults' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_quota_usage.rb000066400000000000000000000001551476630434000270100ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_usage' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_snapshot_details.rb000066400000000000000000000014711476630434000300410ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_snapshot_details' module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end class Mock def get_snapshot_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'snapshot' => { 'id' => '1', 'name' => 'Snapshot1', 'description' => 'Volume1 snapshot', 'size' => 1, 'volume_id' => '1', 'status' => 'available', 'created_at' => Time.now } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_transfer_details.rb000066400000000000000000000001551476630434000300240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_transfer_details' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_volume_details.rb000066400000000000000000000020171476630434000275060ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_details' module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end class Mock def get_volume_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'volume' => { 'id' => '1', 'name' => Fog::Mock.random_letters(rand(8) + 5), 'description' => Fog::Mock.random_letters(rand(12) + 10), 'size' => 3, 'volume_type' => nil, 'snapshot_id' => '4', 'status' => 'online', 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/get_volume_type_details.rb000066400000000000000000000001651476630434000305510ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_type_details' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_backups.rb000066400000000000000000000001451476630434000263160ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_backups_detailed.rb000066400000000000000000000001561476630434000301530ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups_detailed' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_snapshots.rb000066400000000000000000000001541476630434000267100ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_snapshots_detailed.rb000066400000000000000000000001651476630434000305450ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots_detailed' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_transfers.rb000066400000000000000000000001471476630434000266770ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_transfers_detailed.rb000066400000000000000000000001601476630434000305250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers_detailed' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_volume_types.rb000066400000000000000000000001571476630434000274240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volume_types' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_volumes.rb000066400000000000000000000030271476630434000263620ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes' module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes(_options = true, _options_deprecated = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "description" => "test 1 desc", "availability_zone" => "nova", "name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "description" => "test 2 desc", "availability_zone" => "nova", "name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_volumes_detailed.rb000066400000000000000000000030151476630434000302120ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes_detailed' module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes_detailed(_options = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "description" => "test 1 desc", "availability_zone" => "nova", "name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "description" => "test 2 desc", "availability_zone" => "nova", "name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/list_zones.rb000066400000000000000000000001501476630434000260200ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_zones' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/real.rb000066400000000000000000000002501476630434000245530ustar00rootroot00000000000000module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/real_mock.rb000066400000000000000000000003661476630434000255740ustar00rootroot00000000000000module Fog module OpenStack class Volume class V2 class Real include Fog::OpenStack::Volume::Real end class Mock include Fog::OpenStack::Volume::Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/replace_metadata.rb000066400000000000000000000001511476630434000271030ustar00rootroot00000000000000require 'fog/openstack/volume/requests/replace_metadata' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/restore_backup.rb000066400000000000000000000001471476630434000266450ustar00rootroot00000000000000require 'fog/openstack/volume/requests/restore_backup' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/set_tenant.rb000066400000000000000000000001501476630434000257730ustar00rootroot00000000000000require 'fog/openstack/volume/requests/set_tenant' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/snapshot_action.rb000066400000000000000000000001501476630434000270230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/snapshot_action' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_metadata.rb000066400000000000000000000001501476630434000267510ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_metadata' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_quota.rb000066400000000000000000000001521476630434000263240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_quota' require 'fog/openstack/volume/v1/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_snapshot.rb000066400000000000000000000001501476630434000270300ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_snapshot_metadata.rb000066400000000000000000000001611476630434000306720ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot_metadata' require 'fog/openstack/volume/v2/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_volume.rb000066400000000000000000000010451476630434000265040ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_volume' require 'fog/openstack/volume/v2/requests/real' module Fog module OpenStack class Volume module Real def update_volume(volume_id, data = {}) data = data.select { |key| key == :name || key == :description || key == :metadata } request( :body => Fog::JSON.encode('volume' => data), :expects => 200, :method => 'PUT', :path => "volumes/#{volume_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v2/requests/update_volume_type.rb000066400000000000000000000001601476630434000275420ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_volume_type' require 'fog/openstack/volume/v2/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3.rb000066400000000000000000000044441476630434000217670ustar00rootroot00000000000000require 'fog/openstack/core' require 'fog/openstack/volume' module Fog module OpenStack class Volume class V3 < Fog::OpenStack::Volume SUPPORTED_VERSIONS = /v3(\.(0-9))*/ requires :openstack_auth_url recognizes *@@recognizes model_path 'fog/openstack/volume/v3/models' model :volume collection :volumes model :availability_zone collection :availability_zones model :volume_type collection :volume_types model :snapshot collection :snapshots model :transfer collection :transfers model :backup collection :backups request_path 'fog/openstack/volume/v3/requests' # Volume request :list_volumes request :list_volumes_detailed request :create_volume request :update_volume request :get_volume_details request :extend_volume request :delete_volume request :list_zones request :list_volume_types request :create_volume_type request :update_volume_type request :delete_volume_type request :get_volume_type_details request :create_snapshot request :update_snapshot request :list_snapshots request :list_snapshots_detailed request :get_snapshot_details request :delete_snapshot request :update_snapshot_metadata request :delete_snapshot_metadata request :list_transfers request :list_transfers_detailed request :create_transfer request :get_transfer_details request :accept_transfer request :delete_transfer request :list_backups request :list_backups_detailed request :create_backup request :get_backup_details request :restore_backup request :delete_backup request :update_quota request :get_quota request :get_quota_defaults request :get_quota_usage request :update_metadata request :replace_metadata request :delete_metadata request :set_tenant request :action request :snapshot_action autoload :Mock, 'fog/openstack/volume/v3/mock' autoload :Real, 'fog/openstack/volume/v3/real' end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/000077500000000000000000000000001476630434000214345ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v3/mock.rb000066400000000000000000000042171476630434000227160ustar00rootroot00000000000000module Fog module OpenStack class Volume class V3 < Fog::OpenStack::Volume class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :users => {}, :tenants => {}, :quota => { 'gigabytes' => 1000, 'volumes' => 10, 'snapshots' => 10 } } end end def self.reset @data = nil end def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 8776 management_url.path = '/v1' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].find { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url} end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/000077500000000000000000000000001476630434000227175ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/availability_zone.rb000066400000000000000000000004461476630434000267550ustar00rootroot00000000000000require 'fog/openstack/volume/models/availability_zone' module Fog module OpenStack class Volume class V3 class AvailabilityZone < Fog::OpenStack::Volume::AvailabilityZone identity :zoneName attribute :zoneState end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/availability_zones.rb000066400000000000000000000006731476630434000271420ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/availability_zone' require 'fog/openstack/volume/models/availability_zones' module Fog module OpenStack class Volume class V3 class AvailabilityZones < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::AvailabilityZone include Fog::OpenStack::Volume::AvailabilityZones end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/backup.rb000066400000000000000000000004451476630434000245140ustar00rootroot00000000000000require 'fog/openstack/volume/models/backup' module Fog module OpenStack class Volume class V3 class Backup < Fog::OpenStack::Volume::Backup identity :id superclass.attributes.each { |attrib| attribute attrib } end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/backups.rb000066400000000000000000000006071476630434000246770ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/backup' require 'fog/openstack/volume/models/backups' module Fog module OpenStack class Volume class V3 class Backups < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::Backup include Fog::OpenStack::Volume::Backups end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/snapshot.rb000066400000000000000000000023601476630434000251040ustar00rootroot00000000000000require 'fog/openstack/volume/models/snapshot' module Fog module OpenStack class Volume class V3 class Snapshot < Fog::OpenStack::Volume::Snapshot identity :id attribute :name attribute :status attribute :description attribute :metadata attribute :force attribute :size def save requires :name data = if id.nil? service.create_snapshot(attributes[:volume_id], name, description, force) else service.update_snapshot(id, attributes.reject { |k, _v| k == :id }) end merge_attributes(data.body['snapshot']) true end def create requires :name # volume_id, name, description, force=false response = service.create_snapshot(attributes[:volume_id], attributes[:name], attributes[:description], attributes[:force]) merge_attributes(response.body['snapshot']) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/snapshots.rb000066400000000000000000000006211476630434000252650ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/snapshot' require 'fog/openstack/volume/models/snapshots' module Fog module OpenStack class Volume class V3 class Snapshots < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::Snapshot include Fog::OpenStack::Volume::Snapshots end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/transfer.rb000066400000000000000000000006471476630434000250770ustar00rootroot00000000000000require 'fog/openstack/volume/models/transfer' module Fog module OpenStack class Volume class V3 class Transfer < Fog::OpenStack::Volume::Transfer identity :id attribute :auth_key, :aliases => 'authKey' attribute :created_at, :aliases => 'createdAt' attribute :name attribute :volume_id, :aliases => 'volumeId' end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/transfers.rb000066400000000000000000000006211476630434000252520ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/transfer' require 'fog/openstack/volume/models/transfers' module Fog module OpenStack class Volume class V3 class Transfers < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::Transfer include Fog::OpenStack::Volume::Transfers end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/volume.rb000066400000000000000000000020301476630434000245460ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume' module Fog module OpenStack class Volume class V3 class Volume < Fog::OpenStack::Volume::Volume identity :id superclass.attributes.each { |attrib| attribute attrib } attribute :name attribute :description attribute :tenant_id, :aliases => 'os-vol-tenant-attr:tenant_id' def save requires :name, :size data = if id.nil? service.create_volume(name, description, size, attributes) else service.update_volume(id, attributes.select { |key| %i(name description metadata).include?(key) }) end merge_attributes(data.body['volume']) true end def update(attr = nil) requires :id merge_attributes( service.update_volume(id, attr || attributes).body['volume'] ) self end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/volume_type.rb000066400000000000000000000004621476630434000256160ustar00rootroot00000000000000require 'fog/openstack/volume/models/volume_type' module Fog module OpenStack class Volume class V3 class VolumeType < Fog::OpenStack::Volume::VolumeType identity :id attribute :name attribute :volume_backend_name end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/volume_types.rb000066400000000000000000000006351476630434000260030ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/volume_type' require 'fog/openstack/volume/models/volume_types' module Fog module OpenStack class Volume class V3 class VolumeTypes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::VolumeType include Fog::OpenStack::Volume::VolumeTypes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/models/volumes.rb000066400000000000000000000006071476630434000247410ustar00rootroot00000000000000require 'fog/openstack/models/collection' require 'fog/openstack/volume/v3/models/volume' require 'fog/openstack/volume/models/volumes' module Fog module OpenStack class Volume class V3 class Volumes < Fog::OpenStack::Collection model Fog::OpenStack::Volume::V3::Volume include Fog::OpenStack::Volume::Volumes end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/real.rb000066400000000000000000000006531476630434000227100ustar00rootroot00000000000000module Fog module OpenStack class Volume class V3 < Fog::OpenStack::Volume class Real include Fog::OpenStack::Core def self.not_found_class Fog::OpenStack::Volume::NotFound end def default_endtpoint_type 'admin' end def default_service_type %w[volumev3] end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/000077500000000000000000000000001476630434000233075ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/accept_transfer.rb000066400000000000000000000001501476630434000267730ustar00rootroot00000000000000require 'fog/openstack/volume/requests/accept_transfer' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/action.rb000066400000000000000000000001371476630434000251120ustar00rootroot00000000000000require 'fog/openstack/volume/requests/action' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/create_backup.rb000066400000000000000000000001461476630434000264250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_backup' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/create_snapshot.rb000066400000000000000000000023161476630434000270200ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_snapshot' module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real def create_snapshot(volume_id, name, description, force = false) data = { 'snapshot' => { 'volume_id' => volume_id, 'name' => name, 'description' => description, 'force' => force.nil? ? false : force } } _create_snapshot(data) end end class Mock def create_snapshot(volume_id, name, description, _force = false) response = Excon::Response.new response.status = 202 response.body = { "snapshot" => { "status" => "creating", "name" => name, "created_at" => Time.now, "description" => description, "volume_id" => volume_id, "id" => "5", "size" => 1 } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/create_transfer.rb000066400000000000000000000001501476630434000267770ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_transfer' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/create_volume.rb000066400000000000000000000027361476630434000264760ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume' module Fog module OpenStack class Volume class V3 class Real def create_volume(name, description, size, options = {}) data = { 'volume' => { 'name' => name, 'description' => description, 'size' => size } } _create_volume(data, options) end include Fog::OpenStack::Volume::Real end class Mock def create_volume(name, description, size, options = {}) response = Excon::Response.new response.status = 202 response.body = { 'volume' => { 'id' => Fog::Mock.random_numbers(2), 'name' => name, 'description' => description, 'metadata' => options['metadata'] || {}, 'size' => size, 'status' => 'creating', 'snapshot_id' => options[:snapshot_id] || nil, 'image_id' => options[:imageRef] || nil, 'volume_type' => nil, 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/create_volume_type.rb000066400000000000000000000001601476630434000275240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/create_volume_type' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_backup.rb000066400000000000000000000001461476630434000264240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_backup' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_metadata.rb000066400000000000000000000001501476630434000267320ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_metadata' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_snapshot.rb000066400000000000000000000001551476630434000270160ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_snapshot_metadata.rb000066400000000000000000000001611476630434000306530ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_snapshot_metadata' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_transfer.rb000066400000000000000000000001501476630434000267760ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_transfer' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_volume.rb000066400000000000000000000001531476630434000264640ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/delete_volume_type.rb000066400000000000000000000001601476630434000275230ustar00rootroot00000000000000require 'fog/openstack/volume/requests/delete_volume_type' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/extend_volume.rb000066400000000000000000000001531476630434000265110ustar00rootroot00000000000000require 'fog/openstack/volume/requests/extend_volume' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_backup_details.rb000066400000000000000000000001531476630434000274440ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_backup_details' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_quota.rb000066400000000000000000000001471476630434000256260ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_quota_defaults.rb000066400000000000000000000001601476630434000275100ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_defaults' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_quota_usage.rb000066400000000000000000000001551476630434000270110ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_quota_usage' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_snapshot_details.rb000066400000000000000000000014711476630434000300420ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_snapshot_details' module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end class Mock def get_snapshot_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'snapshot' => { 'id' => '1', 'name' => 'Snapshot1', 'description' => 'Volume1 snapshot', 'size' => 1, 'volume_id' => '1', 'status' => 'available', 'created_at' => Time.now } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_transfer_details.rb000066400000000000000000000001551476630434000300250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_transfer_details' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_volume_details.rb000066400000000000000000000020171476630434000275070ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_details' module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end class Mock def get_volume_details(_detailed = true) response = Excon::Response.new response.status = 200 response.body = { 'volume' => { 'id' => '1', 'name' => Fog::Mock.random_letters(rand(8) + 5), 'description' => Fog::Mock.random_letters(rand(12) + 10), 'size' => 3, 'volume_type' => nil, 'snapshot_id' => '4', 'status' => 'online', 'availability_zone' => 'nova', 'created_at' => Time.now, 'attachments' => [] } } response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/get_volume_type_details.rb000066400000000000000000000001651476630434000305520ustar00rootroot00000000000000require 'fog/openstack/volume/requests/get_volume_type_details' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_backups.rb000066400000000000000000000001451476630434000263170ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_backups_detailed.rb000066400000000000000000000001561476630434000301540ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_backups_detailed' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_snapshots.rb000066400000000000000000000001541476630434000267110ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_snapshots_detailed.rb000066400000000000000000000001651476630434000305460ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_snapshots_detailed' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_transfers.rb000066400000000000000000000001471476630434000267000ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_transfers_detailed.rb000066400000000000000000000001601476630434000305260ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_transfers_detailed' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_volume_types.rb000066400000000000000000000001571476630434000274250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volume_types' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_volumes.rb000066400000000000000000000030271476630434000263630ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes' module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes(_options = true, _options_deprecated = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "description" => "test 1 desc", "availability_zone" => "nova", "name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "description" => "test 2 desc", "availability_zone" => "nova", "name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_volumes_detailed.rb000066400000000000000000000030151476630434000302130ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_volumes_detailed' module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end class Mock def list_volumes_detailed(_options = {}) response = Excon::Response.new response.status = 200 data[:volumes] ||= [ {"status" => "available", "description" => "test 1 desc", "availability_zone" => "nova", "name" => "Volume1", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 1, "created_at" => Time.now, "metadata" => {}}, {"status" => "available", "description" => "test 2 desc", "availability_zone" => "nova", "name" => "Volume2", "attachments" => [{}], "volume_type" => nil, "snapshot_id" => nil, "size" => 1, "id" => 2, "created_at" => Time.now, "metadata" => {}} ] response.body = {'volumes' => data[:volumes]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/list_zones.rb000066400000000000000000000001501476630434000260210ustar00rootroot00000000000000require 'fog/openstack/volume/requests/list_zones' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/real.rb000066400000000000000000000002501476630434000245540ustar00rootroot00000000000000module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/real_mock.rb000066400000000000000000000003661476630434000255750ustar00rootroot00000000000000module Fog module OpenStack class Volume class V3 class Real include Fog::OpenStack::Volume::Real end class Mock include Fog::OpenStack::Volume::Mock end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/replace_metadata.rb000066400000000000000000000001511476630434000271040ustar00rootroot00000000000000require 'fog/openstack/volume/requests/replace_metadata' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/restore_backup.rb000066400000000000000000000001471476630434000266460ustar00rootroot00000000000000require 'fog/openstack/volume/requests/restore_backup' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/set_tenant.rb000066400000000000000000000001501476630434000257740ustar00rootroot00000000000000require 'fog/openstack/volume/requests/set_tenant' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/snapshot_action.rb000066400000000000000000000001501476630434000270240ustar00rootroot00000000000000require 'fog/openstack/volume/requests/snapshot_action' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_metadata.rb000066400000000000000000000001501476630434000267520ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_metadata' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_quota.rb000066400000000000000000000001521476630434000263250ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_quota' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_snapshot.rb000066400000000000000000000001501476630434000270310ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_snapshot_metadata.rb000066400000000000000000000001611476630434000306730ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_snapshot_metadata' require 'fog/openstack/volume/v3/requests/real' fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_volume.rb000066400000000000000000000010451476630434000265050ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_volume' require 'fog/openstack/volume/v3/requests/real' module Fog module OpenStack class Volume module Real def update_volume(volume_id, data = {}) data = data.select { |key| key == :name || key == :description || key == :metadata } request( :body => Fog::JSON.encode('volume' => data), :expects => 200, :method => 'PUT', :path => "volumes/#{volume_id}" ) end end end end end fog-openstack-1.1.5/lib/fog/openstack/volume/v3/requests/update_volume_type.rb000066400000000000000000000001601476630434000275430ustar00rootroot00000000000000require 'fog/openstack/volume/requests/update_volume_type' require 'fog/openstack/volume/v3/requests/real_mock' fog-openstack-1.1.5/lib/fog/openstack/workflow.rb000066400000000000000000000007231476630434000217760ustar00rootroot00000000000000module Fog module OpenStack class Workflow < Fog::Service autoload :V2, 'fog/openstack/workflow/v2' # Fog::OpenStack::Workflow.new() will return a Fog::OpenStack::Workflow::V2 # Will choose the latest available once Mistral V3 is released. def self.new(args = {}) @openstack_auth_uri = URI.parse(args[:openstack_auth_url]) if args[:openstack_auth_url] Fog::OpenStack::Workflow::V2.new(args) end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/000077500000000000000000000000001476630434000214475ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/workflow/v2.rb000066400000000000000000000074151476630434000223320ustar00rootroot00000000000000require 'fog/openstack/workflow' module Fog module OpenStack class Workflow class V2 < Fog::Service SUPPORTED_VERSIONS = /v2/ requires :openstack_auth_url recognizes :openstack_username, :openstack_api_key, :openstack_project_name, :openstack_domain_id ## REQUESTS # request_path 'fog/openstack/workflow/v2/requests' # Workflow requests request :create_execution request :get_execution request :list_executions request :update_execution request :delete_execution request :create_action_execution request :get_action_execution request :list_action_executions request :update_action_execution request :delete_action_execution request :create_workbook request :get_workbook request :list_workbooks request :update_workbook request :validate_workbook request :delete_workbook request :create_workflow request :get_workflow request :list_workflows request :update_workflow request :validate_workflow request :delete_workflow request :create_action request :get_action request :list_actions request :update_action request :validate_action request :delete_action request :get_task request :list_tasks request :rerun_task request :create_cron_trigger request :get_cron_trigger request :list_cron_triggers request :delete_cron_trigger request :create_environment request :get_environment request :list_environments request :update_environment request :delete_environment request :list_services class Mock def self.data @data ||= Hash.new do |hash, key| hash[key] = { :workflows => {} } end end def self.reset @data = nil end include Fog::OpenStack::Core def initialize(options = {}) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86_400).iso8601 end def data self.class.data[@openstack_username] end def reset_data self.class.data.delete(@openstack_username) end end class Real include Fog::OpenStack::Core def default_path_prefix 'v2' end def default_service_type %w[workflowv2] end def request(params) response = @connection.request( params.merge( :headers => { 'Content-Type' => 'application/json', 'X-Auth-Token' => @auth_token }.merge!(params[:headers] || {}), :path => "#{@path}/#{params[:path]}" ) ) rescue Excon::Errors::Unauthorized => error if error.response.body != "Bad username or password" # token expiration @openstack_must_reauthenticate = true authenticate retry else # bad credentials raise error end rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::OpenStack::Workflow::NotFound.slurp(error) else error end else unless response.body.empty? response.body = Fog::JSON.decode(response.body) end response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/000077500000000000000000000000001476630434000217765ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/000077500000000000000000000000001476630434000236515ustar00rootroot00000000000000fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_action.rb000066400000000000000000000011411476630434000267730ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_action(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 201, :method => "POST", :path => "actions" ) end end class Mock def create_action(_definition) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_action_execution.rb000066400000000000000000000015331476630434000310630ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_action_execution(action, input = {}, params = {}) data = {:name => action} data[:input] = Fog::JSON.encode(input) unless input.empty? data[:params] = Fog::JSON.encode(params) unless params.empty? body = Fog::JSON.encode(data) request( :body => body, :expects => 201, :method => "POST", :path => "action_executions" ) end end class Mock def create_action_execution(_action, _input = {}, _params = {}) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_cron_trigger.rb000066400000000000000000000034361476630434000302130ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_cron_trigger(name, workflow_identifier, workflow_input = nil, workflow_params = nil, pattern = "* * * * *", first_time = nil, count = nil) data = { :name => name, :pattern => pattern, :first_execution_time => first_time, :remaining_executions => count } if workflow_identifier data[:workflow_id] = workflow_identifier end if workflow_input data[:workflow_input] = Fog::JSON.encode(workflow_input) end if workflow_params data[:workflow_params] = Fog::JSON.encode(workflow_params) end body = Fog::JSON.encode(data) request( :body => body, :expects => 201, :method => "POST", :path => "cron_triggers" ) end end class Mock def create_cron_trigger(_name, _workflow_identifier, _workflow_input = nil, _workflow_params = nil, _pattern = nil, _first_time = nil, _count = nil) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_environment.rb000066400000000000000000000014021476630434000300620ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_environment(definition) unless definition["variables"].nil? definition["variables"] = Fog::JSON.encode(definition["variables"]) end body = Fog::JSON.encode(definition) request( :body => body, :expects => 201, :method => "POST", :path => "environments" ) end end class Mock def create_environment(_definition) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_execution.rb000066400000000000000000000013601476630434000275240ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_execution(workflow, input = {}) data = {:workflow_name => workflow} data[:input] = Fog::JSON.encode(input) unless input.empty? body = Fog::JSON.encode(data) request( :body => body, :expects => 201, :method => "POST", :path => "executions" ) end end class Mock def create_execution(_workflow, _input = {}) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_workbook.rb000066400000000000000000000011471476630434000273610ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_workbook(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 201, :method => "POST", :path => "workbooks" ) end end class Mock def create_workbook(_definition) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/create_workflow.rb000066400000000000000000000011471476630434000273760ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def create_workflow(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 201, :method => "POST", :path => "workflows" ) end end class Mock def create_workflow(_definition) response = Excon::Response.new response.status = 201 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_action.rb000066400000000000000000000007741476630434000270050ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_action(name) request( :expects => 204, :method => "DELETE", :path => "actions/#{URI.encode(name)}" ) end end class Mock def delete_action(_name) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_action_execution.rb000066400000000000000000000010101476630434000310500ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_action_execution(id) request( :expects => 204, :method => "DELETE", :path => "action_executions/#{id}" ) end end class Mock def delete_action_execution(_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_cron_trigger.rb000066400000000000000000000010161476630434000302020ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_cron_trigger(name) request( :expects => 204, :method => "DELETE", :path => "cron_triggers/#{URI.encode(name)}" ) end end class Mock def delete_cron_trigger(_name) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_environment.rb000066400000000000000000000010131476630434000300570ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_environment(name) request( :expects => 204, :method => "DELETE", :path => "environments/#{URI.encode(name)}" ) end end class Mock def delete_environment(_name) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_execution.rb000066400000000000000000000007631476630434000275310ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_execution(id) request( :expects => 204, :method => "DELETE", :path => "executions/#{id}" ) end end class Mock def delete_execution(_id) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_workbook.rb000066400000000000000000000010021476630434000273460ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_workbook(name) request( :expects => 204, :method => "DELETE", :path => "workbooks/#{URI.encode(name)}" ) end end class Mock def delete_workbook(_name) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/delete_workflow.rb000066400000000000000000000010101476630434000273620ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def delete_workflow(identifier) request( :expects => 204, :method => "DELETE", :path => "workflows/#{identifier}" ) end end class Mock def delete_workflow(_identifier) response = Excon::Response.new response.status = 204 response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_action.rb000066400000000000000000000011501476630434000263070ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_action(name) request( :expects => 200, :method => "GET", :path => "actions/#{URI.encode(name)}" ) end end class Mock def get_action(_name) response = Excon::Response.new response.status = 200 response.body = {"version" => "2.0", "action1" => {"input" => ['test_id']}} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_action_execution.rb000066400000000000000000000011401476630434000303710ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_action_execution(execution_id) request( :expects => 200, :method => "GET", :path => "action_executions/#{execution_id}" ) end end class Mock def get_action_execution(_execution_id) response = Excon::Response.new response.status = 200 response.body = {"state" => "running", "id" => "1111"} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_cron_trigger.rb000066400000000000000000000012551476630434000275240ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_cron_trigger(name) request( :expects => 200, :method => "GET", :path => "cron_triggers/#{URI.encode(name)}" ) end end class Mock def get_cron_trigger(_name) response = Excon::Response.new response.status = 200 response.body = {"version" => "2.0", "name" => "cron_trigger1", "description" => "d1"} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_environment.rb000066400000000000000000000013011476630434000273740ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_environment(name) request( :expects => 200, :method => "GET", :path => "environments/#{URI.encode(name)}" ) end end class Mock def get_environment(_name) response = Excon::Response.new response.status = 200 response.body = {"name" => "environment1", "variables" => {"var1" => "value1", "var2" => "value2"}} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_execution.rb000066400000000000000000000011131476630434000270340ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_execution(execution_id) request( :expects => 200, :method => "GET", :path => "executions/#{execution_id}" ) end end class Mock def get_execution(_execution_id) response = Excon::Response.new response.status = 200 response.body = {"state" => "running", "id" => "1111"} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_task.rb000066400000000000000000000011151476630434000257750ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_task(id) request( :expects => 200, :method => "GET", :path => "tasks/#{id}" ) end end class Mock def get_task(_id) response = Excon::Response.new response.status = 200 response.body = {"version" => "2.0", "task1" => {"id" => ['test_id']}} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_workbook.rb000066400000000000000000000012351476630434000266730ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_workbook(name) request( :expects => 200, :method => "GET", :path => "workbooks/#{URI.encode(name)}" ) end end class Mock def get_workbook(_name) response = Excon::Response.new response.status = 200 response.body = {"version" => "2.0", "name" => "workbook1", "description" => "d1"} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/get_workflow.rb000066400000000000000000000012431476630434000267070ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def get_workflow(identifier) request( :expects => 200, :method => "GET", :path => "workflows/#{identifier}" ) end end class Mock def get_workflow(_identifier) response = Excon::Response.new response.status = 200 response.body = {"version" => "2.0", "name" => "workflow1", "description" => "d1"} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_action_executions.rb000066400000000000000000000013411476630434000307530ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_action_executions request( :expects => 200, :method => "GET", :path => "action_executions" ) end end class Mock def list_action_executions response = Excon::Response.new response.status = 200 response.body = {"action_executions" => [{"state" => "ERROR", "id" => "1111"}, {"state" => "RUNNING", "id" => "2222"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_actions.rb000066400000000000000000000014321476630434000266710ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_actions(params = {}) body = Fog::JSON.encode(params) request( :body => body, :expects => 200, :method => "GET", :path => "actions" ) end end class Mock def list_actions(_params = {}) response = Excon::Response.new response.status = 200 response.body = {"actions" => [{"name" => "action1", "description" => "d1"}, {"name" => "action2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_cron_triggers.rb000066400000000000000000000013431476630434000301010ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_cron_triggers request( :expects => 200, :method => "GET", :path => "cron_triggers" ) end end class Mock def list_cron_triggers response = Excon::Response.new response.status = 200 response.body = {"cron_triggers" => [{"name" => "cron_trigger1", "description" => "d1"}, {"name" => "cron_trigger2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_environments.rb000066400000000000000000000013331476630434000277600ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_environments request( :expects => 200, :method => "GET", :path => "environments" ) end end class Mock def list_environments response = Excon::Response.new response.status = 200 response.body = {"environments" => [{"name" => "environment1", "description" => "d1"}, {"name" => "environment2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_executions.rb000066400000000000000000000012671476630434000274250ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_executions request( :expects => 200, :method => "GET", :path => "executions" ) end end class Mock def list_executions response = Excon::Response.new response.status = 200 response.body = {"executions" => [{"state" => "ERROR", "id" => "1111"}, {"state" => "RUNNING", "id" => "2222"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_services.rb000066400000000000000000000012731476630434000270570ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_services request( :expects => 200, :method => "GET", :path => "services" ) end end class Mock def list_services response = Excon::Response.new response.status = 200 response.body = {"services" => [{"name" => "service1", "description" => "d1"}, {"name" => "service2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_tasks.rb000066400000000000000000000013661476630434000263640ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_tasks(workflow_execution_id) request( :expects => 200, :method => "GET", :path => "executions/#{workflow_execution_id}/tasks" ) end end class Mock def list_tasks(_workflow_execution_id) response = Excon::Response.new response.status = 200 response.body = {"tasks" => [{"name" => "task1", "description" => "d1"}, {"name" => "task2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_workbooks.rb000066400000000000000000000013031476630434000272460ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_workbooks request( :expects => 200, :method => "GET", :path => "workbooks" ) end end class Mock def list_workbooks response = Excon::Response.new response.status = 200 response.body = {"workbooks" => [{"name" => "workbook1", "description" => "d1"}, {"name" => "workbook2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/list_workflows.rb000066400000000000000000000014521476630434000272700ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def list_workflows(params = {}) body = Fog::JSON.encode(params) request( :body => body, :expects => 200, :method => "GET", :path => "workflows" ) end end class Mock def list_workflows(_params = {}) response = Excon::Response.new response.status = 200 response.body = {"workflows" => [{"name" => "workflow1", "description" => "d1"}, {"name" => "workflow2", "description" => "d2"}]} response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/rerun_task.rb000066400000000000000000000013741476630434000263600ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def rerun_task(task_ex_id) rerun_payload = { :id => task_ex_id, :state => 'RUNNING', :reset => true } body = Fog::JSON.encode(rerun_payload) request( :body => body, :expects => 200, :method => "PUT", :path => "tasks/#{task_ex_id}" ) end end class Mock def update_action(_task_ex_id) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_action.rb000066400000000000000000000011401476630434000270110ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_action(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "PUT", :path => "actions" ) end end class Mock def update_action(_definition) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_action_execution.rb000066400000000000000000000016241476630434000311030ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_action_execution(id, name, value) # valid values for name are: # state, output # https://github.com/openstack/python-mistralclient/blob/master/mistralclient/commands/v2/action_executions.py data = {:id => id} data[name] = Fog::JSON.encode(value) body = Fog::JSON.encode(data) request( :body => body, :expects => 200, :method => "PUT", :path => "action_executions" ) end end class Mock def update_action_execution(_id, _name, _value) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_environment.rb000066400000000000000000000014011476630434000301000ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_environment(definition) unless definition["variables"].nil? definition["variables"] = Fog::JSON.encode(definition["variables"]) end body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "PUT", :path => "environments" ) end end class Mock def update_environment(_definition) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_execution.rb000066400000000000000000000016021476630434000275420ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_execution(id, name, value) # valid values for name are: # state, description, env # https://github.com/openstack/python-mistralclient/blob/master/mistralclient/commands/v2/executions.py data = {:id => id} data[name] = Fog::JSON.encode(value) body = Fog::JSON.encode(data) request( :body => body, :expects => 200, :method => "PUT", :path => "executions" ) end end class Mock def update_execution(_id, _name, _value) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_workbook.rb000066400000000000000000000011461476630434000273770ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_workbook(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "PUT", :path => "workbooks" ) end end class Mock def update_workbook(_definition) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/update_workflow.rb000066400000000000000000000011461476630434000274140ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def update_workflow(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "PUT", :path => "workflows" ) end end class Mock def update_workflow(_definition) response = Excon::Response.new response.status = 200 response.body = "" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/validate_action.rb000066400000000000000000000011771476630434000273320ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def validate_action(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "POST", :path => "actions/validate" ) end end class Mock def validate_action(_definition) response = Excon::Response.new response.status = 200 response.body = "{\"valid\": true}" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/validate_workbook.rb000066400000000000000000000012051476630434000277020ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def validate_workbook(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "POST", :path => "workbooks/validate" ) end end class Mock def validate_workbook(_definition) response = Excon::Response.new response.status = 200 response.body = "{\"valid\": true}" response end end end end end end fog-openstack-1.1.5/lib/fog/openstack/workflow/v2/requests/validate_workflow.rb000066400000000000000000000012051476630434000277170ustar00rootroot00000000000000module Fog module OpenStack class Workflow class V2 class Real def validate_workflow(definition) body = Fog::JSON.encode(definition) request( :body => body, :expects => 200, :method => "POST", :path => "workflows/validate" ) end end class Mock def validate_workflow(_definition) response = Excon::Response.new response.status = 200 response.body = "{\"valid\": true}" response end end end end end end fog-openstack-1.1.5/playbooks/000077500000000000000000000000001476630434000162705ustar00rootroot00000000000000fog-openstack-1.1.5/playbooks/.gitkeep000066400000000000000000000000001476630434000177070ustar00rootroot00000000000000fog-openstack-1.1.5/playbooks/fog-openstack-unittest-spec/000077500000000000000000000000001476630434000236355ustar00rootroot00000000000000fog-openstack-1.1.5/playbooks/fog-openstack-unittest-spec/run.yaml000066400000000000000000000042301476630434000253240ustar00rootroot00000000000000- hosts: all become: yes tasks: - name: Run unittest spec tests shell: cmd: | set -e set -o pipefail set -x apt-get install ruby ruby-dev -y for key in 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB; do gpg --keyserver keys.gnupg.net --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver pgp.mit.edu --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver keyserver.pgp.com --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver ha.pool.sks-keyservers.net --keyserver-options timeout=5 --recv-keys "$key" done curl -L https://get.rvm.io | bash -s stable source /usr/local/rvm/scripts/rvm > /dev/null 2>&1 for version in {{ rvm }}; do if [ "$version" == "jruby-head" ]; then continue fi rvm install ${version} --disable-binary > /dev/null 2>&1 rvm use ${version} > /dev/null 2>&1 echo "Running tests based on Ruby ${version}..." ruby --version gem install bundler --version '~> 1' bundle install --jobs=3 --retry=3 bundle exec rake spec TESTOPTS="--verbose" done executable: /bin/bash chdir: '{{ zuul.project.src_dir }}' environment: JRUBY_OPTS: '--debug' ANSIBLE_PYTHON_INTERPRETER: /usr/bin/python3 - name: Run unittest spec tests for jruby-head shell: cmd: | set -e set -o pipefail set -x rvm install jruby-head --disable-binary rvm use jruby-head echo "Running tests based on Ruby jruby-head... ruby --version gem install bundler gem update bundler bundle install --jobs=3 --retry=3 bundle exec rake spec TESTOPTS="--verbose" executable: /bin/bash chdir: '{{ zuul.project.src_dir }}' environment: JRUBY_OPTS: '--debug' ANSIBLE_PYTHON_INTERPRETER: /usr/bin/python3 ignore_errors: true fog-openstack-1.1.5/playbooks/fog-openstack-unittest-test/000077500000000000000000000000001476630434000236625ustar00rootroot00000000000000fog-openstack-1.1.5/playbooks/fog-openstack-unittest-test/run.yaml000066400000000000000000000042161476630434000253550ustar00rootroot00000000000000- hosts: all become: yes tasks: - name: Run unittest tests shell: cmd: | set -e set -o pipefail set -x apt-get install ruby ruby-dev -y for key in 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB; do gpg --keyserver keys.gnupg.net --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver pgp.mit.edu --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver keyserver.pgp.com --keyserver-options timeout=5 --recv-keys "$key" || \ gpg --keyserver ha.pool.sks-keyservers.net --keyserver-options timeout=5 --recv-keys "$key" done curl -L https://get.rvm.io | bash -s stable source /usr/local/rvm/scripts/rvm > /dev/null 2>&1 for version in {{ rvm }}; do if [ "$version" == "jruby-head" ]; then continue fi rvm install ${version} --disable-binary > /dev/null 2>&1 rvm use ${version} > /dev/null 2>&1 echo "Running tests based on Ruby ${version}..." ruby --version gem install bundler --version '~> 1' bundle install --jobs=3 --retry=3 bundle exec rake test TESTOPTS="--verbose" done executable: /bin/bash chdir: '{{ zuul.project.src_dir }}' environment: JRUBY_OPTS: '--debug' ANSIBLE_PYTHON_INTERPRETER: /usr/bin/python3 - name: Run unittest tests for jruby-head shell: cmd: | set -e set -o pipefail set -x rvm install jruby-head --disable-binary rvm use jruby-head echo "Running tests based on Ruby jruby-head... ruby --version gem install bundler gem update bundler bundle install --jobs=3 --retry=3 bundle exec rake test TESTOPTS="--verbose" executable: /bin/bash chdir: '{{ zuul.project.src_dir }}' environment: JRUBY_OPTS: '--debug' ANSIBLE_PYTHON_INTERPRETER: /usr/bin/python3 ignore_errors: true fog-openstack-1.1.5/spec/000077500000000000000000000000001476630434000152175ustar00rootroot00000000000000fog-openstack-1.1.5/spec/dns_v2_spec.rb000066400000000000000000000060751476630434000177610ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::DNS::V2 do spec_data_folder = 'spec/fixtures/openstack/dns_v2' before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => spec_data_folder, :project_scoped => true, :service_class => Fog::OpenStack::DNS # Fog to choose latest available version ) @service = openstack_vcr.service end it "CRUD & list zones" do VCR.use_cassette('zone_crud') do zone = 'example.org' zone_name = "#{zone}." zone_description = 'fog testing' begin # create zone example_zone = @service.zones.create(:name => zone_name, :email => "hostmaster@#{zone}") example_zone.status.must_equal 'PENDING' example_zone.action.must_equal 'CREATE' example_id = example_zone.id # add a description example_zone.update(:description => zone_description) example_zone.reload.description.must_equal zone_description # get by ID example_zone_by_id = @service.zones.find_by_id example_id example_zone_by_id.wont_equal nil example_zone_by_id.description.must_equal zone_description # get by filtering list by name zones = @service.zones.all(:name => zone_name) zones.length.must_equal 1 zones.first.id.must_equal example_id ensure # delete the zone(s) @service.zones.all(:name => zone_name).each(&:destroy) # check delete action @service.zones.all(:name => zone_name).each do |z| z.action.must_equal 'DELETE' end end end end it "CRUD & list recordsets" do VCR.use_cassette('recordset_crud') do zone = 'example2.org' zone_name = "#{zone}." recordset_name = "host.#{zone_name}" records = ['10.0.0.1'] records_updated = ['10.0.0.2'] begin # create zone example_zone = @service.zones.create(:name => zone_name, :email => "hostmaster@#{zone}") example_id = example_zone.id # create recordset host_record = @service.recordsets.create( :zone_id => example_id, :name => recordset_name, :type => 'A', :records => records ) host_id = host_record.id # change record host_record.update(:records => records_updated) host_record.reload.records.must_equal records_updated # get by ID host_record_by_id = @service.recordsets.find_by_id(example_id, host_id) host_record_by_id.wont_equal nil host_record_by_id.records.must_equal records_updated # get by filtering list by name recordsets = @service.recordsets.all(:zone_id => example_id, :name => recordset_name) recordsets.length.must_equal 1 recordsets.first.id.must_equal host_id ensure # delete the recordset(s) @service.recordsets.all(:zone_id => example_id, :name => recordset_name).each(&:destroy) # delete the zone(s) @service.zones.all(:name => zone_name).each(&:destroy) end end end end fog-openstack-1.1.5/spec/fixtures/000077500000000000000000000000001476630434000170705ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/000077500000000000000000000000001476630434000210575ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/dns_v2/000077500000000000000000000000001476630434000222525ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/dns_v2/common_setup.yml000066400000000000000000000310471476630434000255120ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Content-Type: - application/json Connection: - keep-alive X-Openstack-Request-Id: - req-424208f4-a2cb-4690-8853-b3147c4e7ed9 Vary: - X-Auth-Token Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Date: - Mon, 05 Sep 2016 09:31:30 GMT X-Subject-Token: - 833aba07925148f9bac2bc047e858727 Server: - nginx/1.11.1 body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d1c1cd5484214574bb4fbc6595def9a6", "name": "admin"}], "expires_at": "2016-09-05T10:31:30.350767Z", "project": {"domain": {"id": "ca1b267e149d4e44bf53d28d1c8d6bc9", "name": "Default"}, "id": "c60a441e54cd435896a357026aa4050a", "name": "admin"}, "catalog": [{"endpoints": [{"url": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "2f0623e5f9204d83931fd57a1fdb1123"}, {"url": "http://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "988f5ca2e8de446db6a36f54045efeac"}, {"url": "http://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "127042e3843d4fb9b62a79633f95ba15"}], "type": "sharev2", "id": "999ab682b1da4982ac2eaa6d16e2f620", "name": "manilav2"}, {"endpoints": [{"url": "http://devstack.openstack.stack:6385", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "316493ea520142ca98dd3e1d30beb7b5"}, {"url": "http://devstack.openstack.stack:6385", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "d6fa2fe8b1fa434b883fe3328fbdbda5"}, {"url": "http://devstack.openstack.stack:6385", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "0a97f39ddae1412e97a5f21b4432e9a8"}], "type": "baremetal", "id": "93bf146f641b42a1b28c22b64ad0e23d", "name": "ironic"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9311", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "43e287df110b4889a34eecbacdbd8a41"}, {"url": "http://devstack.openstack.stack:9311", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "cc6e3f6b47de4213bdf663675baa4f86"}, {"url": "http://devstack.openstack.stack:9311", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "461849e8b3a342d3a291506e1985b08d"}], "type": "key-manager", "id": "08c811648b504ca2b2cfd88a2a07f194", "name": "barbican"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "52846c1572cf4f7b9074584fd5e9495d"}, {"url": "http://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "0ff5e424c17b4f2fb1aec59abfa482e3"}, {"url": "http://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "ecd9d544e4304d53929a1d9befe1eb7a"}], "type": "volumev2", "id": "defd346d6cb145bc8c6dde484ff96e91", "name": "cinderv2"}, {"endpoints": [{"url": "https://devstack.openstack.stack:6001/v1/AUTH_c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "a6ee953c5fc04fd48363c3aaaf469f17"}, {"url": "https://devstack.openstack.stack:6001/v1/AUTH_c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "8ae55154d72c45ac825ad17a5d2fe941"}, {"url": "https://devstack.openstack.stack:6001/v1", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "4b9b0916e18c4757bd42cf29d449754e"}], "type": "object-store", "id": "857f8a01ba7d40399d7d3657c72b500e", "name": "swift"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9292", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "5338ffd565884035941ec3be3ad9002d"}, {"url": "http://devstack.openstack.stack:9292", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "81c0b570c44b4a978eb58a28e605f928"}, {"url": "http://devstack.openstack.stack:9292", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "c3967eb5b037433894e33218e6e953bb"}], "type": "image", "id": "1db038028295470499be817ca0880dbc", "name": "glance"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8070/v2.0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "099c924a40da4862885ab324be95904f"}, {"url": "https://devstack.openstack.stack:8070/v2.0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "011d8cb4bd9a4917a6022c93fd105922"}, {"url": "https://devstack.openstack.stack:8070/v2.0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "6f06c9fb62ee48a1b63cc77b2bf89ae1"}], "type": "monitoring", "id": "6f674669b6a04e15b1d1a97366b00395", "name": "monasca"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8777", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "21e8e980f4a24731baeaea9b7a9a69d6"}, {"url": "http://devstack.openstack.stack:8777", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "2ceaea4ea02746e2a8f5b98c6cae6868"}, {"url": "http://devstack.openstack.stack:8777", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "7b35b996c1024b78951af72248bf96e5"}], "type": "metering", "id": "621f5f04ac2248ec92f12edc8e941fde", "name": "ceilometer"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "383c3adc7a334d1e89f3d824167b4ad2"}, {"url": "http://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "f92bf0dad1e941d09d9a08cb50362510"}, {"url": "http://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "da09586d8bb44903a53efcebe67841d9"}], "type": "compute", "id": "45b131798dc240c4b5d75e024dffc5b5", "name": "nova"}, {"endpoints": [{"url": "https://devstack.openstack.stack:5000", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "7859f84c67d740b294c9a607d03c2991"}, {"url": "http://devstack.openstack.stack:5000", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a2cff5bcad944eb4a10c06e6c05140eb"}, {"url": "devstack.openstack.stack:5000", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "5973c23918b8460886140c5ed6a5411b"}], "type": "identity", "id": "70c56d9a4833404e823ba1195a0f1a63", "name": "keystone"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "aa42c3a4f7b54d95819fc6481626cedc"}, {"url": "http://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "68abd86060354f83932f7d283339eff1"}, {"url": "http://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "52450fbc1b4e48cda51bb5e58ab4b15f"}], "type": "share", "id": "56626b3178214332873f8a277b497e3e", "name": "manila"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "6f338859ed944a10937bee3e2a580f22"}, {"url": "http://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "ef38079803a548dfb1937e363b404e23"}, {"url": "http://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "4bf258d657234ceaa573f02cc5203895"}], "type": "volume", "id": "e967f0a7931e49a4b235239f4fc0ed0e", "name": "cinder"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9696", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "12c7b0cb1f804325bd025fb32d8c33e7"}, {"url": "http://devstack.openstack.stack:9696", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a4e60839ebf54e02a6202c164cbc6a6e"}, {"url": "http://devstack.openstack.stack:9696", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "9ad2510072024ecf8363c9d18eb4b431"}], "type": "network", "id": "5841d2e972ff44fdb1c789d5261f7318", "name": "neutron"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9001", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "692e55cfdb704300967c7da0c55a43bb"}, {"url": "https://devstack.openstack.stack:9001", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "bcfa65f36471406f88b89706274d4465"}, {"url": "https://devstack.openstack.stack:9001", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "57f2b925603f4541b421bea815001b22"}], "type": "dns", "id": "1010a70e914348b59999eefc25b30e7d", "name": "designate"}], "user": {"domain": {"id": "ca1b267e149d4e44bf53d28d1c8d6bc9", "name": "Default"}, "id": "c967b8ba7651e623e91733b25b5834589c48ea6ea826219494316be042429a00", "name": "admin"}, "audit_ids": ["ZlcDBHPjSeyD83V0v2zgew"], "issued_at": "2016-09-05T09:31:30.350795Z"}}' http_version: recorded_at: Mon, 05 Sep 2016 09:31:30 GMT - request: method: get uri: https://devstack.openstack.stack:9001/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 09:31:30 GMT Content-Type: - application/json Content-Length: - '461' Connection: - keep-alive Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: |- { "versions": { "values": [ { "id": "v1", "links": [ { "href": "https://devstack.openstack.stack:9001/v1", "rel": "self" } ], "status": "DEPRECATED" }, { "id": "v2", "links": [ { "href": "https://devstack.openstack.stack:9001/v2", "rel": "self" } ], "status": "CURRENT" } ] } } http_version: recorded_at: Mon, 05 Sep 2016 09:31:30 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/dns_v2/recordset_crud.yml000066400000000000000000000413601476630434000260100ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: https://devstack.openstack.stack:9001/v2/zones body: encoding: UTF-8 string: '{"name":"example2.org.","email":"hostmaster@example2.org"}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:24 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '563' Connection: - keep-alive Location: - https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f X-Openstack-Request-Id: - req-2a73d263-46b9-43e1-b287-438d5980c52c Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example2.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f"}, "transferred_at": null, "created_at": "2016-09-05T14:56:24.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": null, "version": 1, "id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "ttl": 3600, "action": "CREATE", "attributes": {}, "serial": 1473087384, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example2.org", "description": null}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:24 GMT - request: method: post uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets body: encoding: UTF-8 string: '{"name":"host.example2.org.","type":"A","records":["10.0.0.1"]}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:24 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '550' Connection: - keep-alive Location: - https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25 X-Openstack-Request-Id: - req-90978705-6a48-4df0-8020-2afd4844c6ce Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": null, "records": ["10.0.0.1"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 1, "ttl": null, "action": "CREATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:24 GMT - request: method: put uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25 body: encoding: UTF-8 string: '{"records":["10.0.0.2"]}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:24 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '574' Connection: - keep-alive X-Openstack-Request-Id: - req-a89b0d4f-eee3-4571-8a68-b60b5e45cf6a Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:24.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 2, "ttl": null, "action": "UPDATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:24 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '574' Connection: - keep-alive X-Openstack-Request-Id: - req-f23b4b01-385a-472f-bb61-8a83110b5e9f Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:24.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 2, "ttl": null, "action": "UPDATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:24 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '574' Connection: - keep-alive X-Openstack-Request-Id: - req-b8efb862-3230-4485-8667-ee8d5760957a Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:24.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 2, "ttl": null, "action": "UPDATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets?name=host.example2.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '763' Connection: - keep-alive X-Openstack-Request-Id: - req-f6432d09-ea08-403d-a118-c80ba3b2cf87 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"recordsets": [{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:24.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 2, "ttl": null, "action": "UPDATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets?name=host.example2.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets?name=host.example2.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '763' Connection: - keep-alive X-Openstack-Request-Id: - req-06225afa-4ef3-4203-9471-fbe3a4ff9685 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"recordsets": [{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:24.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 2, "ttl": null, "action": "UPDATE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets?name=host.example2.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT - request: method: delete uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '574' Connection: - keep-alive X-Openstack-Request-Id: - req-f3975db6-2814-448b-9a8a-0891a7484096 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "description": null, "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f/recordsets/8af8ef76-2846-4077-973a-b41593bd1e25"}, "created_at": "2016-09-05T14:56:24.000000", "updated_at": "2016-09-05T14:56:25.000000", "records": ["10.0.0.2"], "zone_id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "version": 3, "ttl": null, "action": "DELETE", "zone_name": "example2.org.", "project_id": "c60a441e54cd435896a357026aa4050a", "type": "A", "id": "8af8ef76-2846-4077-973a-b41593bd1e25", "name": "host.example2.org."}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones?name=example2.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '718' Connection: - keep-alive X-Openstack-Request-Id: - req-da823136-97f6-4759-8f4e-10583a05638e Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"zones": [{"status": "PENDING", "masters": [], "name": "example2.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f"}, "transferred_at": null, "created_at": "2016-09-05T14:56:24.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T14:56:25.000000", "version": 4, "id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473087387, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example2.org", "description": null}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones?name=example2.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT - request: method: delete uri: https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '587' Connection: - keep-alive X-Openstack-Request-Id: - req-3d1b4785-76ce-425a-899e-4719729102b1 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example2.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/afacbd2b-6cda-4a05-b4bd-1db06cb3da3f"}, "transferred_at": null, "created_at": "2016-09-05T14:56:24.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T14:56:25.000000", "version": 5, "id": "afacbd2b-6cda-4a05-b4bd-1db06cb3da3f", "ttl": 3600, "action": "DELETE", "attributes": {}, "serial": 1473087387, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example2.org", "description": null}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:25 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/dns_v2/zone_crud.yml000066400000000000000000000323531476630434000247730ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: https://devstack.openstack.stack:9001/v2/zones body: encoding: UTF-8 string: '{"name":"example.org.","email":"hostmaster@example.org"}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '561' Connection: - keep-alive Location: - https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1 X-Openstack-Request-Id: - req-13c405d5-1ade-4755-ba2f-a2c81d5ff34d Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": null, "version": 1, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "CREATE", "attributes": {}, "serial": 1473074785, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": null}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:25 GMT - request: method: patch uri: https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1 body: encoding: UTF-8 string: '{"description":"fog testing"}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '594' Connection: - keep-alive X-Openstack-Request-Id: - req-9d7c6734-7e32-4110-b053-7c4aa7027303 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:25.000000", "version": 2, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '594' Connection: - keep-alive X-Openstack-Request-Id: - req-20342c50-24c5-4ae3-8c36-f081d17ed903 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:25.000000", "version": 2, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '594' Connection: - keep-alive X-Openstack-Request-Id: - req-2f43a507-112c-433e-b479-0b1140e0081b Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:25.000000", "version": 2, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones?name=example.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:25 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '724' Connection: - keep-alive X-Openstack-Request-Id: - req-a01b0c87-b6ff-4a9d-8c21-1106967141c0 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"zones": [{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:25.000000", "version": 2, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones?name=example.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:25 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones?name=example.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:26 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '724' Connection: - keep-alive X-Openstack-Request-Id: - req-02e2858f-ca1c-4ee2-a9e4-62b7057f6a40 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"zones": [{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:25.000000", "version": 2, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "UPDATE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones?name=example.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:26 GMT - request: method: delete uri: https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 202 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:26 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '594' Connection: - keep-alive X-Openstack-Request-Id: - req-907cbf36-376f-4b06-b1c1-c16620afbc9f Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:26.000000", "version": 3, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "DELETE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:26 GMT - request: method: get uri: https://devstack.openstack.stack:9001/v2/zones?name=example.org. body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Auth-All-Projects: - 'false' response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 11:26:26 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '724' Connection: - keep-alive X-Openstack-Request-Id: - req-d2d7cf1a-b5b8-4619-b441-2f827a636392 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"zones": [{"status": "PENDING", "masters": [], "name": "example.org.", "links": {"self": "https://devstack.openstack.stack:9001/v2/zones/85735965-31a1-46f9-a429-7e410b75e8e1"}, "transferred_at": null, "created_at": "2016-09-05T11:26:25.000000", "pool_id": "794ccc2c-d751-44fe-b57f-8894c9f5c842", "updated_at": "2016-09-05T11:26:26.000000", "version": 3, "id": "85735965-31a1-46f9-a429-7e410b75e8e1", "ttl": 3600, "action": "DELETE", "attributes": {}, "serial": 1473074786, "project_id": "c60a441e54cd435896a357026aa4050a", "type": "PRIMARY", "email": "hostmaster@example.org", "description": "fog testing"}], "links": {"self": "https://devstack.openstack.stack:9001/v2/zones?name=example.org."}, "metadata": {"total_count": 1}}' http_version: recorded_at: Mon, 05 Sep 2016 11:26:26 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/000077500000000000000000000000001476630434000233205ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_a.yml000066400000000000000000000140341476630434000255570ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"id":"205e0e39a2534743b517ed0aa2fbcda7","password":"password"}}},"scope":{"domain":{"id":"default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:40 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - f8f31a7a07344ae1a8fd9ea8c03689ab Vary: - X-Auth-Token X-Openstack-Request-Id: - req-993c0edc-e28b-4d39-b38f-e56fb0210c0f Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:51:40.683156Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["ySKiB4frRTSad2LVXZzW4A"], "issued_at": "2016-05-03T13:51:40.683240Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:40 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_application_credential.yml000066400000000000000000000140161476630434000320340ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["application_credential"],"application_credential":{"id":"423f19a4ac1e4f48bbb4180756e6eb6c","secret":"rEaqvJka48mpv"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:40 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - f8f31a7a07344ae1a8fd9ea8c03689ab Vary: - X-Auth-Token X-Openstack-Request-Id: - req-993c0edc-e28b-4d39-b38f-e56fb0210c0f Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:51:40.683156Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["ySKiB4frRTSad2LVXZzW4A"], "issued_at": "2016-05-03T13:51:40.683240Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:40 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_b.yml000066400000000000000000000140351476630434000255610ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"id":"default"},"password":"password"}}},"scope":{"domain":{"id":"default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:40 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 3a0451cc21e544368debad029c835253 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e76a592d-935f-4617-846b-110717d1a50f Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:51:40.963510Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["PrGGifm4T2Kb19ArNesIYg"], "issued_at": "2016-05-03T13:51:40.963563Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:41 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_c.yml000066400000000000000000000447361476630434000255750ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"password":"password","domain":{"name":"Default"},"name":"admin"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:41 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - c04d742037fd4d7e8f2db2ed34d11e99 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-126a6265-3f6e-4f11-84ad-65650248ceeb Content-Length: - '297' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "expires_at": "2016-05-03T14:51:41.228683Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["o6QhbDFHSDOh82Q15z0OMQ"], "issued_at": "2016-05-03T13:51:41.228725Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:41 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c04d742037fd4d7e8f2db2ed34d11e99 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:41 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-2aa7bf50-09bb-4868-b3b5-f9b624ab0d76 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:41 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"id":"default"},"password":"password"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:40 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 7f72291092a647578b115b853d129693 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7fffa2b1-97bb-4605-80ac-623452cb6ee7 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:51:40.395145Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["lLjqZsXsSj-Qs4FlZPGp7A"], "issued_at": "2016-05-03T13:51:40.395192Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:40 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"c04d742037fd4d7e8f2db2ed34d11e99"}},"scope":{"project":{"id":"2ab82e30d7984631874def67813dffd8"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:41 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 936fac5af78d4d88a470aad59fc2ff4c Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4856f507-c99b-4f05-87e0-77687a9f1317 Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:41.228683Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["PsB1SYm9TTGlMQtekTJgTQ", "o6QhbDFHSDOh82Q15z0OMQ"], "issued_at": "2016-05-03T13:51:41.793474Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:41 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_project.yml000066400000000000000000000223501476630434000270050ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:43 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - cbb1ec5fc0a04c478f7be94cd41bb255 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8fd23d88-0038-4e32-8457-eba6384f11ec Content-Length: - '7433' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "13c811edcd2a46dca5fed6252fd50cd2", "name": "service"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:44.110319Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["C24YWW2DRPK-s6GLGBqT_w"], "issued_at": "2016-05-03T13:51:44.110379Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:44 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_token.yml000066400000000000000000000514371476630434000264670ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"foobar_385","email":"foobar_demo@example.com","domain_id":"default","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d61f7128-718f-4c60-8169-3bb4c1cfbf3f Content-Length: - '241' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "foobar_385", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/304d38f9e15c4603b70326120db88a7d"}, "domain_id": "default", "enabled": true, "email": "foobar_demo@example.com", "id": "304d38f9e15c4603b70326120db88a7d"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:54 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"foobar_role390"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:54 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3244136c-4a15-49e7-a83f-7a9ff9005bc6 Content-Length: - '168' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "d121bd07dec845f29915ae2956249e34", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d121bd07dec845f29915ae2956249e34"}, "name": "foobar_role390"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:54 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/domains/default/users/304d38f9e15c4603b70326120db88a7d/roles/d121bd07dec845f29915ae2956249e34 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:54 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-28a48abb-effa-4e94-b357-d2f9162a43fc Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:54 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"foobar_385","domain":{"id":"default"},"password":"s3cret!"}}},"scope":{"domain":{"id":"default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:54 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 305c9b5e8d3b48a38dcd8ee2fdf96f8e Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f98fcaa3-78a2-4dc3-a584-94e2f46531b2 Content-Length: - '4611' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "d121bd07dec845f29915ae2956249e34", "name": "foobar_role390"}], "expires_at": "2016-05-03T14:51:54.629181Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "304d38f9e15c4603b70326120db88a7d", "name": "foobar_385"}, "audit_ids": ["oQ8CEopyS3mQECayU-uUow"], "issued_at": "2016-05-03T13:51:54.629230Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:54 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"305c9b5e8d3b48a38dcd8ee2fdf96f8e"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:54 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 53f379ea05744daeb13417e3df4dafe8 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c7a5351f-061b-4182-b5bb-718cfb9f16d7 Content-Length: - '337' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "expires_at": "2016-05-03T14:51:54.629181Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "304d38f9e15c4603b70326120db88a7d", "name": "foobar_385"}, "audit_ids": ["4ALKzx4mQtW74Rmu30d2AQ", "oQ8CEopyS3mQECayU-uUow"], "issued_at": "2016-05-03T13:51:54.844344Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:55 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/304d38f9e15c4603b70326120db88a7d/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 53f379ea05744daeb13417e3df4dafe8 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fe44d74c-bc02-4f77-898b-e77fd5d01d4d Content-Length: - '158' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/304d38f9e15c4603b70326120db88a7d/projects", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:51:55 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"305c9b5e8d3b48a38dcd8ee2fdf96f8e"}},"scope":{"domain":{"id":"default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 113fc5a7836948ac9b0207e67b87ce9b Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fa7bd1b1-92d0-427f-bd8f-986da5b5da26 Content-Length: - '4646' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["token", "password"], "roles": [{"id": "d121bd07dec845f29915ae2956249e34", "name": "foobar_role390"}], "expires_at": "2016-05-03T14:51:54.629181Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "304d38f9e15c4603b70326120db88a7d", "name": "foobar_385"}, "audit_ids": ["jxnOeLmfQgKVzWBXzZcadg", "oQ8CEopyS3mQECayU-uUow"], "issued_at": "2016-05-03T13:51:55.299668Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:55 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"blahblahblah"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-72c38b89-f49f-4d4a-b4a0-1425827b5b8d Content-Length: - '95' Content-Type: - application/json body: encoding: UTF-8 string: '{"error": {"message": "Could not find token: blahblahblah", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:55 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/304d38f9e15c4603b70326120db88a7d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3123f15e-d856-44a4-95f8-61e4d1eb2299 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:55 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/d121bd07dec845f29915ae2956249e34 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f568dfa5-ae0a-4613-ace8-8205f6a25546 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_unscoped.yml000066400000000000000000001024771476630434000271700ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"id":"205e0e39a2534743b517ed0aa2fbcda7","password":"password"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:44 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 3b6732fff35e40fe9049353b0e74b232 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4e34482e-7b30-4ea2-bcfa-3c3820a51677 Content-Length: - '297' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "expires_at": "2016-05-03T14:51:44.372900Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["cwY5czMmQkibEsb8A0lv0A"], "issued_at": "2016-05-03T13:51:44.372950Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:44 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3b6732fff35e40fe9049353b0e74b232 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:44 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5e9ed1d9-c864-46e3-a818-876c088b1e54 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:44 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"3b6732fff35e40fe9049353b0e74b232"}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:44 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 5d7c9dd15f8f4d39a0c6415159e68b3d Vary: - X-Auth-Token X-Openstack-Request-Id: - req-866e3e00-9c7c-4d6f-95ae-a1370e8371e3 Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:44.372900Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["ZsheSCPqQDS8SU8craebdw", "cwY5czMmQkibEsb8A0lv0A"], "issued_at": "2016-05-03T13:51:44.919243Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:45 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"5d7c9dd15f8f4d39a0c6415159e68b3d"}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:45 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 976bceac19a54f4fbb90098dec01f592 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-898ef647-be98-4c60-a7b2-ccd26f5efcaf Content-Length: - '7468' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "13c811edcd2a46dca5fed6252fd50cd2", "name": "service"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:44.372900Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["YAOBOIILR5utqw2fWLIAyg", "cwY5czMmQkibEsb8A0lv0A"], "issued_at": "2016-05-03T13:51:45.320480Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:45 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 5d7c9dd15f8f4d39a0c6415159e68b3d X-Subject-Token: - 976bceac19a54f4fbb90098dec01f592 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:45 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 976bceac19a54f4fbb90098dec01f592 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0748bc0a-1ae9-4b71-9ea6-c8d163e2fdd5 Content-Length: - '7468' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "13c811edcd2a46dca5fed6252fd50cd2", "name": "service"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:44.372900Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "name": "admin"}, "catalog": [{"endpoints": [{"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "1ebe166449b34147ac4df07e492571d9"}, {"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"url": "http://devstack.openstack.stack:35357/v3", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "634d57ce5d534c808afb24127b7ac355"}, {"url": "http://devstack.openstack.stack:5000/v3", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"url": "http://devstack.openstack.stack:5000/v3", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "bb95738666b94144802d02b313a3520d"}, {"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8773/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"url": "http://devstack.openstack.stack:8773/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"url": "http://devstack.openstack.stack:8773/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "11d18be7930947f696db531c9bbdf245"}, {"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "0f962cae636846009772e0bd81c39d49"}, {"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "36828cbcbe6843dbace247d1674e924a"}, {"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"url": "http://devstack.openstack.stack:9292", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "acebdcb3418045b9a62ed295349327c3"}, {"url": "http://devstack.openstack.stack:9292", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"url": "http://devstack.openstack.stack:9292", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"url": "http://devstack.openstack.stack:9696/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "1a6718d75cd94e24993a27d275442a17"}, {"url": "http://devstack.openstack.stack:9696/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"url": "http://devstack.openstack.stack:9696/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "6531f16841454331908be0fb35dca95a"}, {"url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"url": "http://devstack.openstack.stack:8090", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["YAOBOIILR5utqw2fWLIAyg", "cwY5czMmQkibEsb8A0lv0A"], "issued_at": "2016-05-03T13:51:45.320480Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:45 GMT - request: method: head uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 5d7c9dd15f8f4d39a0c6415159e68b3d X-Subject-Token: - 976bceac19a54f4fbb90098dec01f592 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:45 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 976bceac19a54f4fbb90098dec01f592 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-bfb2dbc7-b64a-4c8a-800c-62ec8c33b900 Content-Length: - '7468' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:45 GMT - request: method: head uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 5d7c9dd15f8f4d39a0c6415159e68b3d X-Subject-Token: - random-token response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:45 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-dd728c11-3c38-4816-8824-52bb1541f761 Content-Length: - '95' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/authv3_unscoped_reauth.yml000066400000000000000000000616601476630434000305360ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"id":"205e0e39a2534743b517ed0aa2fbcda7","password":"password"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:42 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 1c3698c7eea04d6a9034fb943580226f Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4a5ebde5-5f3c-4839-abaf-84c3a7bb292f Content-Length: - '297' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "expires_at": "2016-05-03T14:51:42.251981Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["YxQtGxUZTQ-RgN0xxM0GgA"], "issued_at": "2016-05-03T13:51:42.252030Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:42 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1c3698c7eea04d6a9034fb943580226f response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:42 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a4de00b0-c6c2-48ab-8713-4f360dea0729 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:42 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"1c3698c7eea04d6a9034fb943580226f"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:42 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - e103360608aa47d0be4b25d931ec5565 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d736a1b0-2056-4f0c-9954-45aba4508aa8 Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:42.251981Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["msgDgd78Rlez9VGQ_4-xDg", "YxQtGxUZTQ-RgN0xxM0GgA"], "issued_at": "2016-05-03T13:51:42.862185Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:43 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"e103360608aa47d0be4b25d931ec5565"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:43 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - e8574f1786ac47b790867e52fadfc505 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4add7b1b-48c4-406f-8337-bd4086937fa2 Content-Length: - '332' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "expires_at": "2016-05-03T14:51:42.251981Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["KFI6dlbEQn6wKAqgLCxp0w", "YxQtGxUZTQ-RgN0xxM0GgA"], "issued_at": "2016-05-03T13:51:43.146591Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:43 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - e8574f1786ac47b790867e52fadfc505 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:43 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3a303886-cf6f-4221-835c-19a1523276e6 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:43 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"e103360608aa47d0be4b25d931ec5565"}},"scope":{"project":{"id":"2ab82e30d7984631874def67813dffd8"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:43 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 9418bd3cbbb14fb7b7f39d64258997bb Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7e721f11-9ba5-4b52-887f-9105f8b4726b Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:42.251981Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["ANs3zM_qTTeQEzoWbLh_kQ", "YxQtGxUZTQ-RgN0xxM0GgA"], "issued_at": "2016-05-03T13:51:43.763668Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:43 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/common_setup.yml000066400000000000000000000140301476630434000265510ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:40 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 7f72291092a647578b115b853d129693 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7fffa2b1-97bb-4605-80ac-623452cb6ee7 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:51:40.395145Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["lLjqZsXsSj-Qs4FlZPGp7A"], "issued_at": "2016-05-03T13:51:40.395192Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:40 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_credential.yml000066400000000000000000000067671476630434000271220ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c32f1daa-ad85-442d-84ef-9e767587825e Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b3b1a595-7795-45d7-824c-a699ebb3fb65 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-716b9b7a-b9ff-46b3-8074-81250068f2f5 Content-Length: - '96' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find credential: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_credential_crud.yml000066400000000000000000000562631476630434000301330ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"u-foobar_cred","email":"foobar@example.com","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-06cd3eb4-77b4-4639-8ba4-d14dedded99d Content-Length: - '239' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "u-foobar_cred", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/00daf5c9bc3046d48b758a5feabe9912"}, "domain_id": "default", "enabled": true, "email": "foobar@example.com", "id": "00daf5c9bc3046d48b758a5feabe9912"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-964ce440-9f61-456c-9e50-435e663b94ea Content-Length: - '3930' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca Monitoring Project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac"}, "enabled": true, "id": "30079dd13fb1488a88e6ee32f3e0b9ac", "parent_id": null, "domain_id": "default", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/5c2f4406e91248ac9c1406b795385725"}, "enabled": true, "id": "5c2f4406e91248ac9c1406b795385725", "parent_id": null, "domain_id": "default", "name": "invisible_to_admin"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/775d0f75213049008cadd749d864b034"}, "enabled": true, "id": "775d0f75213049008cadd749d864b034", "parent_id": null, "domain_id": "default", "name": "cmdlineproj2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/7abd4b01ef62438bb79d7bd78fcbf9c8"}, "enabled": true, "id": "7abd4b01ef62438bb79d7bd78fcbf9c8", "parent_id": null, "domain_id": "default", "name": "BillingProject"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8248851af6d54c689198bf2db30c5ed9"}, "enabled": true, "id": "8248851af6d54c689198bf2db30c5ed9", "parent_id": null, "domain_id": "default", "name": "swifttenanttest1"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/9eed0d548eb943fc88ac5a49df3a6911"}, "enabled": true, "id": "9eed0d548eb943fc88ac5a49df3a6911", "parent_id": null, "domain_id": "default", "name": "swifttenanttest2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/ac812327c9b84a3cb1cabd56f251f5da"}, "enabled": true, "id": "ac812327c9b84a3cb1cabd56f251f5da", "parent_id": null, "domain_id": "1617829d043b41858253a9a6e848615d", "name": "swifttenanttest4"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/e9c90636e1b048df86267ca7c54782eb"}, "enabled": true, "id": "e9c90636e1b048df86267ca7c54782eb", "parent_id": null, "domain_id": "77e438db79474d5d90ab5f2c5c4942e2", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f2eb3fbfdd8849729a1e0c0dbf188dda"}, "enabled": true, "id": "f2eb3fbfdd8849729a1e0c0dbf188dda", "parent_id": null, "domain_id": "default", "name": "cmdlineproj1"}, {"is_domain": false, "description": "ertertert", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/fb52f89781a64375a826ad12fc174534"}, "enabled": true, "id": "fb52f89781a64375a826ad12fc174534", "parent_id": null, "domain_id": "default", "name": "ertertert"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-93e42ce6-3d01-4f36-8cf3-f6a4059ab930 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7a736202-fc06-4cd3-a813-e6f5cbb5e239 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: UTF-8 string: '{"credential":{"type":"ec2","project_id":"2ab82e30d7984631874def67813dffd8","user_id":"00daf5c9bc3046d48b758a5feabe9912","blob":"{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"7e084117-b13d-4656-9eca-85376b690897\"}"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d4f5f804-da14-4d1a-9e9a-2007d7c8bb3e Content-Length: - '447' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credential": {"user_id": "00daf5c9bc3046d48b758a5feabe9912", "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}, "blob": "{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"7e084117-b13d-4656-9eca-85376b690897\"}", "project_id": "2ab82e30d7984631874def67813dffd8", "type": "ec2", "id": "9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6ae6b6d6-40f7-44f9-882e-514fb6aa6d8c Content-Length: - '545' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [{"user_id": "00daf5c9bc3046d48b758a5feabe9912", "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}, "blob": "{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"7e084117-b13d-4656-9eca-85376b690897\"}", "project_id": "2ab82e30d7984631874def67813dffd8", "type": "ec2", "id": "9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae body: encoding: UTF-8 string: '{"credential":{"blob":"{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"62307bcd-ca3c-47ae-a114-27a6cadb5bc9\"}"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-40182ee1-521e-4709-9499-7fdcb01820d6 Content-Length: - '447' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credential": {"user_id": "00daf5c9bc3046d48b758a5feabe9912", "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}, "blob": "{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"62307bcd-ca3c-47ae-a114-27a6cadb5bc9\"}", "project_id": "2ab82e30d7984631874def67813dffd8", "type": "ec2", "id": "9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-db6d8341-c3ec-46a8-a5e1-e38bf6820eaa Content-Length: - '545' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [{"user_id": "00daf5c9bc3046d48b758a5feabe9912", "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}, "blob": "{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"62307bcd-ca3c-47ae-a114-27a6cadb5bc9\"}", "project_id": "2ab82e30d7984631874def67813dffd8", "type": "ec2", "id": "9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:21 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5377dfc3-7729-43c3-bd9d-32358dee135f Content-Length: - '545' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [{"user_id": "00daf5c9bc3046d48b758a5feabe9912", "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}, "blob": "{\"access\":\"9c4e774a-f644-498f-90c4-970b3f817fc5\",\"secret\":\"62307bcd-ca3c-47ae-a114-27a6cadb5bc9\"}", "project_id": "2ab82e30d7984631874def67813dffd8", "type": "ec2", "id": "9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/00daf5c9bc3046d48b758a5feabe9912 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-73411047-145a-4aba-ab04-7a7c5683e8a4 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-788ac5aa-e485-4475-9db3-a1edbc2d2dbc Content-Length: - '152' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find credential: 9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9c1f2f9e-41b7-4101-a32d-9797e87f3b42 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials/9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-14a7a785-ce76-4d2e-bb02-3a008856d1cc Content-Length: - '152' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find credential: 9e7bb4e633cc08cc863fe15351911e267f2a953b24c1a80f0f35e173303bafae", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/credentials body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-15e40665-5d5a-4d3a-98ff-1cb539bc9bf3 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"credentials": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/credentials", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_domain.yml000066400000000000000000000152261476630434000262450ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1060d3e9-1be9-4e46-885a-3602551def93 Content-Length: - '968' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/1617829d043b41858253a9a6e848615d"}, "enabled": true, "description": "Used for swift functional testing", "name": "swift_test", "id": "1617829d043b41858253a9a6e848615d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/36ba5b83865d482296b6d0682e983d77"}, "enabled": true, "description": "domain for services", "name": "monsooncc", "id": "36ba5b83865d482296b6d0682e983d77"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/77e438db79474d5d90ab5f2c5c4942e2"}, "enabled": true, "description": "domain for user projects", "name": "monsoon2", "id": "77e438db79474d5d90ab5f2c5c4942e2"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default"}, "enabled": true, "description": "Owns users and tenants (i.e. projects) available on Identity API v2.", "name": "Default", "id": "default"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:55 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1060d3e9-1be9-4e46-885a-3602551def93 Content-Length: - '968' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/1617829d043b41858253a9a6e848615d"}, "enabled": true, "description": "Used for swift functional testing", "name": "swift_test", "id": "1617829d043b41858253a9a6e848615d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/36ba5b83865d482296b6d0682e983d77"}, "enabled": true, "description": "domain for services", "name": "monsooncc", "id": "36ba5b83865d482296b6d0682e983d77"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/77e438db79474d5d90ab5f2c5c4942e2"}, "enabled": true, "description": "domain for user projects", "name": "monsoon2", "id": "77e438db79474d5d90ab5f2c5c4942e2"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default"}, "enabled": true, "description": "Owns users and tenants (i.e. projects) available on Identity API v2.", "name": "Default", "id": "default"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/default body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d79bfbd0-5475-405e-b68f-26a9a7c445c8 Content-Length: - '219' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default"}, "enabled": true, "description": "Owns users and tenants (i.e. projects) available on Identity API v2.", "name": "Default", "id": "default"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ffade62e-4e20-410e-8aa2-aa81fea22b62 Content-Length: - '92' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find domain: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_domain_crud.yml000066400000000000000000000330631476630434000272610ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/domains body: encoding: UTF-8 string: '{"domain":{"name":"foobar"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b2cc2b52-88da-478f-8b9a-6916191bd2e6 Content-Length: - '181' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": true, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b6fa3995-e302-42e4-ab72-6ff4a6f4637b Content-Length: - '287' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [{"enabled": true, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "foobar"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: UTF-8 string: '{"domain":{"name":"baz","enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7253be4c-a67e-4f5a-95d9-02e4e5cfa31d Content-Length: - '179' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": false, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "baz"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3ae28dac-5be5-41f8-b373-b264c1d73be8 Content-Length: - '282' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [{"enabled": false, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "baz"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:56 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:56 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-40403609-2508-4660-9e45-645bba87b623 Content-Length: - '179' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": false, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "baz"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: UTF-8 string: '{"domain":{"enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4973a0ee-91a6-43eb-895e-2539826e8b05 Content-Length: - '179' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": false, "id": "9a032c5d2f2440399dbcb2953d568c93", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93"}, "name": "baz"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1c091159-0f33-449f-a7a0-6a8c8bd73624 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: UTF-8 string: '{"domain":{"enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e2aee918-c842-49ac-9c31-a40c074afa85 Content-Length: - '116' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find domain: 9a032c5d2f2440399dbcb2953d568c93", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/9a032c5d2f2440399dbcb2953d568c93 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d512e7ff-65fd-4164-892d-762e5c822df9 Content-Length: - '116' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find domain: 9a032c5d2f2440399dbcb2953d568c93", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c4dc83a1-64b3-4db7-82c3-5635449a9042 Content-Length: - '118' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-20521c79-6324-4e1f-aafa-f7ae5ab3e7da Content-Length: - '115' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domains": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/domains?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:57 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_domain_group_roles_mutation.yml000066400000000000000000000672601476630434000326120ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/domains body: encoding: UTF-8 string: '{"domain":{"name":"d-foobar"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-04125cfe-b153-4dee-b775-124642bb1257 Content-Length: - '183' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": true, "id": "33eb72a5cc3e47e7b459a3b5cb9702f6", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6"}, "name": "d-foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: UTF-8 string: '{"group":{"name":"g-foobar","description":"Group of Foobar users","domain_id":"33eb72a5cc3e47e7b459a3b5cb9702f6"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-20c51756-80e6-4380-841c-1a9209b73aac Content-Length: - '253' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"group": {"domain_id": "33eb72a5cc3e47e7b459a3b5cb9702f6", "description": "Group of Foobar users", "id": "df54c32b8ecc48528c8956a5f0d69930", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/df54c32b8ecc48528c8956a5f0d69930"}, "name": "g-foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"u-foobar_foobar","email":"foobar@example.com","password":"s3cret!","domain_id":"33eb72a5cc3e47e7b459a3b5cb9702f6"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7380f8ea-b3d7-4920-93b7-8b5a171f8524 Content-Length: - '266' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "u-foobar_foobar", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/2e670c4c9ba24dca852ef131bd1651a1"}, "domain_id": "33eb72a5cc3e47e7b459a3b5cb9702f6", "enabled": true, "email": "foobar@example.com", "id": "2e670c4c9ba24dca852ef131bd1651a1"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/users/2e670c4c9ba24dca852ef131bd1651a1/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-971ac013-b149-4304-8a7e-e5a6a1a8a571 Content-Length: - '182' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/users/2e670c4c9ba24dca852ef131bd1651a1/roles", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5c31e5a0-8ebe-4edc-acab-a5c2ca4bf1b9 Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"foobar_role"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0027bc9a-4016-4760-9e4a-28d5da67711c Content-Length: - '165' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "071c6fef30d14df6b5872f2f2a255bcc", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/071c6fef30d14df6b5872f2f2a255bcc"}, "name": "foobar_role"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles/071c6fef30d14df6b5872f2f2a255bcc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fbc69265-bfd1-4827-b67b-7058d29c581b Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-73ffa625-1274-4667-a949-767d22824d13 Content-Length: - '338' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles", "previous": null, "next": null}, "roles": [{"id": "071c6fef30d14df6b5872f2f2a255bcc", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/071c6fef30d14df6b5872f2f2a255bcc"}, "name": "foobar_role"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:00 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/users/2e670c4c9ba24dca852ef131bd1651a1/roles/071c6fef30d14df6b5872f2f2a255bcc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-488c3943-a86a-4f19-a7d6-345e751896c9 Content-Length: - '237' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:00 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5754662d-118f-4ee0-bdc0-0e7510163f6a Content-Length: - '180' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/groups/df54c32b8ecc48528c8956a5f0d69930/users/2e670c4c9ba24dca852ef131bd1651a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8cf2f7cf-9b78-40df-b20c-7850108f79d9 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/users/2e670c4c9ba24dca852ef131bd1651a1/roles/071c6fef30d14df6b5872f2f2a255bcc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-eb556fdd-e002-4125-9248-9b60133a0bbd Content-Length: - '237' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f2e3ef6e-8033-4498-8037-46957d264e6e Content-Length: - '651' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [{"scope": {"domain": {"id": "33eb72a5cc3e47e7b459a3b5cb9702f6"}}, "role": {"id": "071c6fef30d14df6b5872f2f2a255bcc"}, "user": {"id": "2e670c4c9ba24dca852ef131bd1651a1"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles/071c6fef30d14df6b5872f2f2a255bcc", "membership": "http://devstack.openstack.stack:35357/v3/groups/df54c32b8ecc48528c8956a5f0d69930/users/2e670c4c9ba24dca852ef131bd1651a1"}}], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?group.id=df54c32b8ecc48528c8956a5f0d69930 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-482fe285-4866-4567-96c9-b1e9351f85d0 Content-Length: - '513' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [{"scope": {"domain": {"id": "33eb72a5cc3e47e7b459a3b5cb9702f6"}}, "role": {"id": "071c6fef30d14df6b5872f2f2a255bcc"}, "group": {"id": "df54c32b8ecc48528c8956a5f0d69930"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles/071c6fef30d14df6b5872f2f2a255bcc"}}], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?group.id=df54c32b8ecc48528c8956a5f0d69930", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6/groups/df54c32b8ecc48528c8956a5f0d69930/roles/071c6fef30d14df6b5872f2f2a255bcc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8e269e65-fdba-4191-8651-44358759bd54 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-44575553-b3d0-4362-8a77-8d7d7c3719c6 Content-Length: - '180' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&user.id=2e670c4c9ba24dca852ef131bd1651a1", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:01 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/2e670c4c9ba24dca852ef131bd1651a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:01 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8fa1ac40-2125-4d9c-85db-a3f8006940c5 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:02 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/groups/df54c32b8ecc48528c8956a5f0d69930 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:02 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7ba1ed5a-a173-49c8-83a3-83eb978f6e9b Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:02 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/071c6fef30d14df6b5872f2f2a255bcc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:02 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-879bec75-3dcf-45bc-b41d-23ba217d0960 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:02 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6 body: encoding: UTF-8 string: '{"domain":{"enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:02 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e651d256-fc9a-450a-a301-e7ff74431668 Content-Length: - '184' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"enabled": false, "id": "33eb72a5cc3e47e7b459a3b5cb9702f6", "links": {"self": "http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6"}, "name": "d-foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/domains/33eb72a5cc3e47e7b459a3b5cb9702f6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:02 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-157dc899-8ab2-46d2-92a2-0af8ad687592 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_domain_roles_mutation.yml000066400000000000000000000714571476630434000314010ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"foobar_role_user","email":"foobar@example.com","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:57 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fc51aef7-4b98-4181-b795-87234e5e968f Content-Length: - '242' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "foobar_role_user", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d5c338451a8249d3901fed9c41f08e70"}, "domain_id": "default", "enabled": true, "email": "foobar@example.com", "id": "d5c338451a8249d3901fed9c41f08e70"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c9be37a7-d770-4828-8f12-9a1aed0e3d32 Content-Length: - '157' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"foobar_role"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-66c04ff5-f01c-4c17-af69-44cce223fa92 Content-Length: - '165' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "bcd7db1631be432298eddb8d7ce93d5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/bcd7db1631be432298eddb8d7ce93d5d"}, "name": "foobar_role"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a2dee2d1-c27a-4306-9699-a90ed3180893 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5b35e91d-c963-4d56-a1cb-2e48bc7ec1de Content-Length: - '312' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles", "previous": null, "next": null}, "roles": [{"id": "bcd7db1631be432298eddb8d7ce93d5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/bcd7db1631be432298eddb8d7ce93d5d"}, "name": "foobar_role"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?user.id=d5c338451a8249d3901fed9c41f08e70 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-bc92bca4-f039-4cd8-8d1b-488fe30c1802 Content-Length: - '460' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [{"scope": {"domain": {"id": "default"}}, "role": {"id": "bcd7db1631be432298eddb8d7ce93d5d"}, "user": {"id": "d5c338451a8249d3901fed9c41f08e70"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d"}}], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?user.id=d5c338451a8249d3901fed9c41f08e70", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:58 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a5fa4b0d-b730-4465-bbfb-538db7eafc91 Content-Length: - '13535' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [{"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "0536d9fac63c465ebf60a2a5f87bea1f"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/0536d9fac63c465ebf60a2a5f87bea1f/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "30079dd13fb1488a88e6ee32f3e0b9ac"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "1432886c5942446988bd6796a72bd08c"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac/users/1432886c5942446988bd6796a72bd08c/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/205e0e39a2534743b517ed0aa2fbcda7/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/205e0e39a2534743b517ed0aa2fbcda7/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"project": {"id": "650778a984b040d2bc7acd45d9e7940f"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/650778a984b040d2bc7acd45d9e7940f/users/205e0e39a2534743b517ed0aa2fbcda7/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"project": {"id": "a5db6ff5a6274dd589b6a05945d7f34d"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d/users/205e0e39a2534743b517ed0aa2fbcda7/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/users/205e0e39a2534743b517ed0aa2fbcda7/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/users/205e0e39a2534743b517ed0aa2fbcda7/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/users/205e0e39a2534743b517ed0aa2fbcda7/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"domain": {"id": "default"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "205e0e39a2534743b517ed0aa2fbcda7"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/default/users/205e0e39a2534743b517ed0aa2fbcda7/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "42a9988a47134aa2aaa0deafef474d97"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/42a9988a47134aa2aaa0deafef474d97/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "42a9988a47134aa2aaa0deafef474d97"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/42a9988a47134aa2aaa0deafef474d97/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "42a9988a47134aa2aaa0deafef474d97"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/users/42a9988a47134aa2aaa0deafef474d97/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "42a9988a47134aa2aaa0deafef474d97"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/users/42a9988a47134aa2aaa0deafef474d97/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"domain": {"id": "default"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "42a9988a47134aa2aaa0deafef474d97"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/default/users/42a9988a47134aa2aaa0deafef474d97/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "30079dd13fb1488a88e6ee32f3e0b9ac"}}, "role": {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf"}, "user": {"id": "54956227818d4bf7a98a59af580708c2"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac/users/54956227818d4bf7a98a59af580708c2/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}}, {"scope": {"project": {"id": "8248851af6d54c689198bf2db30c5ed9"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "5955f4b81f414da6ace5b2e8949d047f"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/8248851af6d54c689198bf2db30c5ed9/users/5955f4b81f414da6ace5b2e8949d047f/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "30079dd13fb1488a88e6ee32f3e0b9ac"}}, "role": {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf"}, "group": {"id": "66d5464244d64171a5b1acbdd7634989"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac/groups/66d5464244d64171a5b1acbdd7634989/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}}, {"scope": {"project": {"id": "9eed0d548eb943fc88ac5a49df3a6911"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/9eed0d548eb943fc88ac5a49df3a6911/users/6e53f10a91c44e15a9ad8cca2facd5a8/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "7031bcf1a2f344f483d137b5f5d4659a"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/7031bcf1a2f344f483d137b5f5d4659a/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "72ec469780214348abe5ac51cd96157b"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/72ec469780214348abe5ac51cd96157b/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"project": {"id": "8248851af6d54c689198bf2db30c5ed9"}}, "role": {"id": "eb9f0f3b348042ffa65f9d33e5d72014"}, "user": {"id": "8308d6e0421c458bb3e9a979ccf61aa1"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/8248851af6d54c689198bf2db30c5ed9/users/8308d6e0421c458bb3e9a979ccf61aa1/roles/eb9f0f3b348042ffa65f9d33e5d72014"}}, {"scope": {"project": {"id": "e9c90636e1b048df86267ca7c54782eb"}}, "role": {"id": "7e4e00f7c94145a1855f39c32331ff5d"}, "user": {"id": "9a493030d8b047cab5d019cc4930aa15"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/e9c90636e1b048df86267ca7c54782eb/users/9a493030d8b047cab5d019cc4930aa15/roles/7e4e00f7c94145a1855f39c32331ff5d"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "ac4e77c52dd048b7afd84f3bf63a70af"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/ac4e77c52dd048b7afd84f3bf63a70af/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "650778a984b040d2bc7acd45d9e7940f"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "b0f31e5531cf4959bd909eb3c14aa2ae"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/650778a984b040d2bc7acd45d9e7940f/users/b0f31e5531cf4959bd909eb3c14aa2ae/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "30079dd13fb1488a88e6ee32f3e0b9ac"}}, "role": {"id": "7e4e00f7c94145a1855f39c32331ff5d"}, "group": {"id": "d3460e03a73d4aad9a999542290a0251"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac/groups/d3460e03a73d4aad9a999542290a0251/roles/7e4e00f7c94145a1855f39c32331ff5d"}}, {"scope": {"domain": {"id": "default"}}, "role": {"id": "bcd7db1631be432298eddb8d7ce93d5d"}, "user": {"id": "d5c338451a8249d3901fed9c41f08e70"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d"}}, {"scope": {"project": {"id": "5c2f4406e91248ac9c1406b795385725"}}, "role": {"id": "d97660751404495ab8c405826d547c16"}, "user": {"id": "d66fbe28f45a405a87fd32bb30f7c42e"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/5c2f4406e91248ac9c1406b795385725/users/d66fbe28f45a405a87fd32bb30f7c42e/roles/d97660751404495ab8c405826d547c16"}}, {"scope": {"project": {"id": "a5db6ff5a6274dd589b6a05945d7f34d"}}, "role": {"id": "d97660751404495ab8c405826d547c16"}, "user": {"id": "d66fbe28f45a405a87fd32bb30f7c42e"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d/users/d66fbe28f45a405a87fd32bb30f7c42e/roles/d97660751404495ab8c405826d547c16"}}, {"scope": {"project": {"id": "a5db6ff5a6274dd589b6a05945d7f34d"}}, "role": {"id": "eb9f0f3b348042ffa65f9d33e5d72014"}, "user": {"id": "d66fbe28f45a405a87fd32bb30f7c42e"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d/users/d66fbe28f45a405a87fd32bb30f7c42e/roles/eb9f0f3b348042ffa65f9d33e5d72014"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "13c811edcd2a46dca5fed6252fd50cd2"}, "user": {"id": "d93c389c04e54300931765702727c7e9"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/d93c389c04e54300931765702727c7e9/roles/13c811edcd2a46dca5fed6252fd50cd2"}}, {"scope": {"project": {"id": "e9c90636e1b048df86267ca7c54782eb"}}, "role": {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf"}, "user": {"id": "df3e59fbd98c46d197ab1e582dac212f"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/e9c90636e1b048df86267ca7c54782eb/users/df3e59fbd98c46d197ab1e582dac212f/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}}, {"scope": {"project": {"id": "f17a4813648d4b0bb82124ca1f5f1fd0"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "group": {"id": "e47ddb5b1f774b5481376facec57075a"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0/groups/e47ddb5b1f774b5481376facec57075a/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"domain": {"id": "default"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "group": {"id": "e47ddb5b1f774b5481376facec57075a"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/domains/default/groups/e47ddb5b1f774b5481376facec57075a/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "30079dd13fb1488a88e6ee32f3e0b9ac"}}, "role": {"id": "7e4e00f7c94145a1855f39c32331ff5d"}, "user": {"id": "e82af7ca715e4a8a97fbb898e8208ee9"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac/users/e82af7ca715e4a8a97fbb898e8208ee9/roles/7e4e00f7c94145a1855f39c32331ff5d"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "ec19ce44e69049efbbb6f190e0ed8b69"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/ec19ce44e69049efbbb6f190e0ed8b69/roles/5929fb4077c3415c9850e66f2c2be16b"}}, {"scope": {"project": {"id": "2ab82e30d7984631874def67813dffd8"}}, "role": {"id": "d46ad249d4dd40eb840d20ec917d682e"}, "user": {"id": "ec19ce44e69049efbbb6f190e0ed8b69"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8/users/ec19ce44e69049efbbb6f190e0ed8b69/roles/d46ad249d4dd40eb840d20ec917d682e"}}, {"scope": {"project": {"id": "a5db6ff5a6274dd589b6a05945d7f34d"}}, "role": {"id": "d97660751404495ab8c405826d547c16"}, "group": {"id": "f23d78d762544dcf9d5a5680e167bdc2"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d/groups/f23d78d762544dcf9d5a5680e167bdc2/roles/d97660751404495ab8c405826d547c16"}}, {"scope": {"project": {"id": "ac812327c9b84a3cb1cabd56f251f5da"}}, "role": {"id": "5929fb4077c3415c9850e66f2c2be16b"}, "user": {"id": "f62255e257cf46dc8d129e07223b2590"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/ac812327c9b84a3cb1cabd56f251f5da/users/f62255e257cf46dc8d129e07223b2590/roles/5929fb4077c3415c9850e66f2c2be16b"}}], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:58 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7b1d7629-2b90-4a10-a926-1895b8c80c93 X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ad23ab6f-7122-4a47-b200-ea101e61a1db Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/domains/default/users/d5c338451a8249d3901fed9c41f08e70/roles/bcd7db1631be432298eddb8d7ce93d5d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5a5e5cdc-e049-4792-a2a9-e4069c8628b0 Content-Length: - '212' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/d5c338451a8249d3901fed9c41f08e70 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b2df53ec-0ec2-426f-b708-18399af8807f Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/bcd7db1631be432298eddb8d7ce93d5d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:59 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7c9bf140-93cc-4c20-a4aa-e62783c8dabd Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:59 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_endpoint.yml000066400000000000000000001545311476630434000266210ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-05aeac9f-923a-4232-90bb-b4ea4cf9b205 Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b24ceb15-b87f-4f59-a766-c78959cd285d Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a908a1a5-cd1c-4be5-a200-e51d37e80153 Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9c824689-8b60-4f70-9e56-7c533e2623f8 Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-993cdb66-dda0-462c-8b14-77a30ba625f5 Content-Length: - '94' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find endpoint: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_endpoints_crud.yml000066400000000000000000002243541476630434000300220ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-66144a21-fa26-4b61-9336-23a239b3f06e Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-27f75ca7-2a0f-49dd-bf74-20af6f47ac0c Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: UTF-8 string: '{"endpoint":{"service_id":"1766683b2f9f4ef2acf7f9e4e359fb9a","interface":"internal","name":"foobar","url":"http://example.com/foobar","enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-dd83f377-c196-4b89-9d05-a099e70af9c1 Content-Length: - '332' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoint": {"region_id": null, "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3"}, "url": "http://example.com/foobar", "region": null, "enabled": false, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "817203fdafc2449bbdab4e7e323021f3", "name": "foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints?interface=internal body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9f88db25-1587-420c-a6c7-f11909effd5e Content-Length: - '4027' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": null, "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3"}, "url": "http://example.com/foobar", "region": null, "enabled": false, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "817203fdafc2449bbdab4e7e323021f3", "name": "foobar"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints?interface=internal", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3 body: encoding: UTF-8 string: '{"endpoint":{"name":"baz","url":"http://example.com/baz"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9b1e6d0e-46df-4a64-9678-70fea6e3b9c9 Content-Length: - '326' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoint": {"region_id": null, "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3"}, "url": "http://example.com/baz", "region": null, "enabled": false, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "817203fdafc2449bbdab4e7e323021f3", "name": "baz"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints?interface=internal body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3e60e23f-ec57-43a5-8f02-bee285ecc801 Content-Length: - '4021' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": null, "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3"}, "url": "http://example.com/baz", "region": null, "enabled": false, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "817203fdafc2449bbdab4e7e323021f3", "name": "baz"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints?interface=internal", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:19 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1dd867f3-29eb-49c8-a22a-ae9d59cd6fed Content-Length: - '11086' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": null, "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3"}, "url": "http://example.com/baz", "region": null, "enabled": false, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "817203fdafc2449bbdab4e7e323021f3", "name": "baz"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:19 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-99efa07c-d9c3-4773-9607-9ede0fea9d38 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-34370d85-d392-483b-aa50-278301bd224a Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints/817203fdafc2449bbdab4e7e323021f3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7fd9af17-6465-4a01-b505-9c5ab8eaea31 Content-Length: - '118' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find endpoint: 817203fdafc2449bbdab4e7e323021f3", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/endpoints body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:20 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-bd1c9312-caed-492b-be86-829b44d2002d Content-Length: - '10772' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"endpoints": [{"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0e40a16fd8ad4045ae738b749818818e"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/0f962cae636846009772e0bd81c39d49"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/11d18be7930947f696db531c9bbdf245"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/156ba3bcbd3f4544ad1008159022d7fa"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1a6718d75cd94e24993a27d275442a17"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/1ebe166449b34147ac4df07e492571d9"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/36828cbcbe6843dbace247d1674e924a"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/54546c7c383a4d6abc2b93c94d75e2f7"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/5cfedecf28a54bd38031380dd0c255b1"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/634d57ce5d534c808afb24127b7ac355"}, "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6531f16841454331908be0fb35dca95a"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/6f44eb5bf4e646f9a7afebb1f32501f1"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/8a7a2620740c4c2fb6fabf15746c101f"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9a532e6593c242698ee0ef4d348147ed"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/9bb4f1c83833484e9d53ce2b57d6308b"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a5e54f1ba61e4756b55c3f346bcf9219"}, "url": "http://devstack.openstack.stack:8090/v1/AUTH_$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/a603e6ffd0804c4f82a8770d71dede64"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/acebdcb3418045b9a62ed295349327c3"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b253dd3d3f7d43d8ab35ad97c68440c3"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b2ae2902e8104f05b5fd2def27a4537a"}, "url": "http://devstack.openstack.stack:8776/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "id": "b2ae2902e8104f05b5fd2def27a4537a"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b3b24c2c4ef44ff48049caff79149091"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b53b60875b214e7f925f96d3a2a57464"}, "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "311850187e5a47108ac9b43ec5346658", "id": "b53b60875b214e7f925f96d3a2a57464"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b91bd1a6c34b4973b3d48f94516358bc"}, "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "e6a92b95728740ea9bda0c348a89f0f1", "id": "b91bd1a6c34b4973b3d48f94516358bc"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/b9d30173e66148baa3ab2dc2df33cb5e"}, "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "b936e5bfd38e4a3b97fcb8d08840881f", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/bb95738666b94144802d02b313a3520d"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/cf084db111ad4818a4f94080e0ed7819"}, "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "73e3bfb0b1b944f0ace3a078baad1fcc", "id": "cf084db111ad4818a4f94080e0ed7819"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/d7f48b18a887467ca02c943704dcbd91"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "admin", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e1be91e12d5646a8830c32146a3ed1aa"}, "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "c626cfc79ed34e3699c2d96c58d105cd", "id": "e1be91e12d5646a8830c32146a3ed1aa"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e62f1c8709554031ace717700c431635"}, "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "261a2c1f467c4b148f38822ae9f179a3", "id": "e62f1c8709554031ace717700c431635"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e7287110f01248d49cef8447d0f8d2cb"}, "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "5eff43878c134ae7a5f405cf0d191aff", "id": "e7287110f01248d49cef8447d0f8d2cb"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/e81eef3261494c4299a972a8c7bf669e"}, "url": "http://devstack.openstack.stack:8776/v1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "4a6033d57e30494a9577358d90d08123", "id": "e81eef3261494c4299a972a8c7bf669e"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/edfc5903d27a42bbb5ebf806ecac3d22"}, "url": "http://devstack.openstack.stack:8774/v2/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "internal", "service_id": "92e80becd6d8462b8f51fb227eb11999", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}, {"region_id": "RegionOne", "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints/f7f1d535541a4c808a8d3747343712a0"}, "url": "http://devstack.openstack.stack:8774/v2.1/$(tenant_id)s", "region": "RegionOne", "enabled": true, "interface": "public", "service_id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "id": "f7f1d535541a4c808a8d3747343712a0"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/endpoints", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:20 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_group_crud_mutation.yml000066400000000000000000001202751476630434000310700ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a24ba29b-6343-40e0-8b27-c1c8ec0c012b Content-Length: - '1029' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d63236e0-971f-4fd2-be09-e0cb749e6007 Content-Length: - '1029' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: UTF-8 string: '{"group":{"name":"foobar","description":"Group of Foobar users"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7a259615-6de8-4a72-a0ca-84246ae80b92 Content-Length: - '226' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"group": {"domain_id": "default", "description": "Group of Foobar users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "foobar"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5ac85a66-f66d-4461-a8a6-29adc1d1770d Content-Length: - '1246' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "Group of Foobar users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "foobar"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17 body: encoding: UTF-8 string: '{"group":{"name":"baz","description":"Group of Baz users"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6c946c50-2062-451e-a66f-7e6e9b45e285 Content-Length: - '220' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"group": {"domain_id": "default", "description": "Group of Baz users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "baz"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-2fb3f9a9-d66f-4930-9b4c-25a4ee08ef72 Content-Length: - '1240' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "Group of Baz users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "baz"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b044707c-a6bd-4d24-973e-ec1b8ff0202d Content-Length: - '1240' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "Group of Baz users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "baz"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"foobar1","email":"foobar1@example.com","password":"s3cret!1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ce26e686-1fdc-464a-a6b2-0b4b6bbefa56 Content-Length: - '234' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "foobar1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716"}, "domain_id": "default", "enabled": true, "email": "foobar1@example.com", "id": "05a83e694acc4ec0ba615208891d9716"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"foobar2","email":"foobar2@example.com","password":"s3cret!2"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1e3a706f-00e8-482c-860d-7aae24c04c75 Content-Length: - '234' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "foobar2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8038462d4cd84547a7fa41f78ee6c818"}, "domain_id": "default", "enabled": true, "email": "foobar2@example.com", "id": "8038462d4cd84547a7fa41f78ee6c818"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7a5dc315-9dd5-45d3-9a06-fc83d7b3537a Content-Length: - '143' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716/groups", "previous": null, "next": null}, "groups": []}' http_version: recorded_at: Tue, 03 May 2016 13:51:50 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f9e3a201-f197-4603-b828-959568ba24f7 Content-Length: - '142' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/05a83e694acc4ec0ba615208891d9716 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-116ba6f2-f26a-48f5-9ecb-2b2ac0d7866b Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-429f8b99-6235-45d4-8fba-96ca8ea440af Content-Length: - '352' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Group of Baz users", "id": "e7124aad44f74b73b6bb6a6fd04aed17", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17"}, "name": "baz"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/05a83e694acc4ec0ba615208891d9716 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a664957d-7885-40e5-9435-f5edb33f6898 X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/8038462d4cd84547a7fa41f78ee6c818 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0725cce3-9b2b-4bc5-b09f-718ed6ea5149 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-622660a8-9989-456f-bcfc-a1483025e908 Content-Length: - '592' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "foobar1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716"}, "domain_id": "default", "enabled": true, "email": "foobar1@example.com", "id": "05a83e694acc4ec0ba615208891d9716"}, {"name": "foobar2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8038462d4cd84547a7fa41f78ee6c818"}, "domain_id": "default", "enabled": true, "email": "foobar2@example.com", "id": "8038462d4cd84547a7fa41f78ee6c818"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/05a83e694acc4ec0ba615208891d9716 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-63e788a6-e974-44dc-9329-20754fb662b5 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:51 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/05a83e694acc4ec0ba615208891d9716 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-04d54d29-f83c-4fdb-8b5e-922bb97e5c27 Content-Length: - '154' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:51 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-10d22f03-4aa2-4ac4-933f-ce98ae049c46 Content-Length: - '366' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "foobar2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8038462d4cd84547a7fa41f78ee6c818"}, "domain_id": "default", "enabled": true, "email": "foobar2@example.com", "id": "8038462d4cd84547a7fa41f78ee6c818"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/05a83e694acc4ec0ba615208891d9716 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3055fb14-d7fc-4492-862b-586adc4be119 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/8038462d4cd84547a7fa41f78ee6c818 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6f095135-59c8-437b-bc1e-355ef694e87d Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users/8038462d4cd84547a7fa41f78ee6c818 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-834d2818-5654-4708-bf5c-83129355939b Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-33fc5b67-ee5b-46e6-8fbd-1e8eead49347 Content-Length: - '142' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4c2d3084-4d0a-47c3-8d2a-7cd713d03281 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-18edab28-ddb1-4129-8634-cf9861e43867 Content-Length: - '1029' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups/e7124aad44f74b73b6bb6a6fd04aed17 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0c36d99f-3deb-4041-96b8-e357ae746f4b Content-Length: - '115' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find group: e7124aad44f74b73b6bb6a6fd04aed17", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:52 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:52 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-37cf1f8e-c6a1-424c-80bd-f69aca919eba Content-Length: - '1029' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/groups", "previous": null, "next": null}, "groups": [{"domain_id": "default", "description": "Technical users for Monasca Agents", "id": "66d5464244d64171a5b1acbdd7634989", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/66d5464244d64171a5b1acbdd7634989"}, "name": "MonitoringAgents"}, {"domain_id": "default", "description": "Users with access to the Monasca Monitoring service", "id": "d3460e03a73d4aad9a999542290a0251", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/d3460e03a73d4aad9a999542290a0251"}, "name": "MonitoringUsers"}, {"domain_id": "default", "description": "openstack admin group", "id": "e47ddb5b1f774b5481376facec57075a", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/e47ddb5b1f774b5481376facec57075a"}, "name": "admins"}, {"domain_id": "default", "description": "non-admin group", "id": "f23d78d762544dcf9d5a5680e167bdc2", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/f23d78d762544dcf9d5a5680e167bdc2"}, "name": "nonadmins"}]}' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_policy.yml000066400000000000000000000111641476630434000262720ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-db7e6f25-7578-452a-b0ab-e0dd3ef2c469 Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-90d010a0-ad58-4e8a-90fd-31f406832a0e Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-140644e7-4161-4df2-9987-21347004fb1a Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:22 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7eefee91-d622-4505-b19a-1a27d6acd067 Content-Length: - '92' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find policy: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_policy_crud.yml000066400000000000000000000310441476630434000273060ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1d8ebfb8-d309-4371-93b0-68400be2bde5 Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: UTF-8 string: '{"policy":{"type":"application/json","blob":"{\"foobar_user\":[\"role:compute-user\"]}"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-90e2c0db-fc46-4456-9ef1-c9fc01805b85 Content-Length: - '228' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"policy": {"type": "application/json", "id": "81e48132af274496994c82611824bcc7", "links": {"self": "http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7"}, "blob": "{\"foobar_user\":[\"role:compute-user\"]}"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-2e44885d-9533-4d70-8418-b097f6d3c197 Content-Length: - '324' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": [{"type": "application/json", "id": "81e48132af274496994c82611824bcc7", "links": {"self": "http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7"}, "blob": "{\"foobar_user\":[\"role:compute-user\"]}"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7 body: encoding: UTF-8 string: '{"policy":{"blob":"{\"baz_user\":[\"role:compute-user\"]}"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b59b0178-11c6-49a3-b7c1-e71ca431eec5 Content-Length: - '225' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"policy": {"type": "application/json", "id": "81e48132af274496994c82611824bcc7", "links": {"self": "http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7"}, "blob": "{\"baz_user\":[\"role:compute-user\"]}"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c76f4ed1-afb3-4ce8-9e0e-5b28abc643a5 Content-Length: - '321' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": [{"type": "application/json", "id": "81e48132af274496994c82611824bcc7", "links": {"self": "http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7"}, "blob": "{\"baz_user\":[\"role:compute-user\"]}"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-48b0910a-d071-4114-b78b-08670cebee6d Content-Length: - '321' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": [{"type": "application/json", "id": "81e48132af274496994c82611824bcc7", "links": {"self": "http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7"}, "blob": "{\"baz_user\":[\"role:compute-user\"]}"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-45a47c62-bcaa-493f-930a-24d9e9e4c623 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:23 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:23 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-90fa629e-2e0a-4ba7-b301-4433652768a3 Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:24 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies/81e48132af274496994c82611824bcc7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:24 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d55a5654-ad01-42eb-b393-ac64266121cf Content-Length: - '116' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find policy: 81e48132af274496994c82611824bcc7", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:24 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/policies body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:24 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8b1b627c-db49-4946-8507-5e7a233dfcb3 Content-Length: - '108' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/policies", "previous": null, "next": null}, "policies": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:24 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_project.yml000066400000000000000000000324421476630434000264430ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-15106c27-9f6b-42d9-9487-6ee7d090a56d Content-Length: - '3930' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca Monitoring Project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac"}, "enabled": true, "id": "30079dd13fb1488a88e6ee32f3e0b9ac", "parent_id": null, "domain_id": "default", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/5c2f4406e91248ac9c1406b795385725"}, "enabled": true, "id": "5c2f4406e91248ac9c1406b795385725", "parent_id": null, "domain_id": "default", "name": "invisible_to_admin"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/775d0f75213049008cadd749d864b034"}, "enabled": true, "id": "775d0f75213049008cadd749d864b034", "parent_id": null, "domain_id": "default", "name": "cmdlineproj2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/7abd4b01ef62438bb79d7bd78fcbf9c8"}, "enabled": true, "id": "7abd4b01ef62438bb79d7bd78fcbf9c8", "parent_id": null, "domain_id": "default", "name": "BillingProject"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8248851af6d54c689198bf2db30c5ed9"}, "enabled": true, "id": "8248851af6d54c689198bf2db30c5ed9", "parent_id": null, "domain_id": "default", "name": "swifttenanttest1"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/9eed0d548eb943fc88ac5a49df3a6911"}, "enabled": true, "id": "9eed0d548eb943fc88ac5a49df3a6911", "parent_id": null, "domain_id": "default", "name": "swifttenanttest2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/ac812327c9b84a3cb1cabd56f251f5da"}, "enabled": true, "id": "ac812327c9b84a3cb1cabd56f251f5da", "parent_id": null, "domain_id": "1617829d043b41858253a9a6e848615d", "name": "swifttenanttest4"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/e9c90636e1b048df86267ca7c54782eb"}, "enabled": true, "id": "e9c90636e1b048df86267ca7c54782eb", "parent_id": null, "domain_id": "77e438db79474d5d90ab5f2c5c4942e2", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f2eb3fbfdd8849729a1e0c0dbf188dda"}, "enabled": true, "id": "f2eb3fbfdd8849729a1e0c0dbf188dda", "parent_id": null, "domain_id": "default", "name": "cmdlineproj1"}, {"is_domain": false, "description": "ertertert", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/fb52f89781a64375a826ad12fc174534"}, "enabled": true, "id": "fb52f89781a64375a826ad12fc174534", "parent_id": null, "domain_id": "default", "name": "ertertert"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4dd754c8-56f9-4186-93fe-a28945d7f330 Content-Length: - '3930' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca Monitoring Project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/30079dd13fb1488a88e6ee32f3e0b9ac"}, "enabled": true, "id": "30079dd13fb1488a88e6ee32f3e0b9ac", "parent_id": null, "domain_id": "default", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/5c2f4406e91248ac9c1406b795385725"}, "enabled": true, "id": "5c2f4406e91248ac9c1406b795385725", "parent_id": null, "domain_id": "default", "name": "invisible_to_admin"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/775d0f75213049008cadd749d864b034"}, "enabled": true, "id": "775d0f75213049008cadd749d864b034", "parent_id": null, "domain_id": "default", "name": "cmdlineproj2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/7abd4b01ef62438bb79d7bd78fcbf9c8"}, "enabled": true, "id": "7abd4b01ef62438bb79d7bd78fcbf9c8", "parent_id": null, "domain_id": "default", "name": "BillingProject"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8248851af6d54c689198bf2db30c5ed9"}, "enabled": true, "id": "8248851af6d54c689198bf2db30c5ed9", "parent_id": null, "domain_id": "default", "name": "swifttenanttest1"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/9eed0d548eb943fc88ac5a49df3a6911"}, "enabled": true, "id": "9eed0d548eb943fc88ac5a49df3a6911", "parent_id": null, "domain_id": "default", "name": "swifttenanttest2"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/ac812327c9b84a3cb1cabd56f251f5da"}, "enabled": true, "id": "ac812327c9b84a3cb1cabd56f251f5da", "parent_id": null, "domain_id": "1617829d043b41858253a9a6e848615d", "name": "swifttenanttest4"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/e9c90636e1b048df86267ca7c54782eb"}, "enabled": true, "id": "e9c90636e1b048df86267ca7c54782eb", "parent_id": null, "domain_id": "77e438db79474d5d90ab5f2c5c4942e2", "name": "monitoring"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}, {"is_domain": false, "description": "from cmdline", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f2eb3fbfdd8849729a1e0c0dbf188dda"}, "enabled": true, "id": "f2eb3fbfdd8849729a1e0c0dbf188dda", "parent_id": null, "domain_id": "default", "name": "cmdlineproj1"}, {"is_domain": false, "description": "ertertert", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/fb52f89781a64375a826ad12fc174534"}, "enabled": true, "id": "fb52f89781a64375a826ad12fc174534", "parent_id": null, "domain_id": "default", "name": "ertertert"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9b7c0170-9244-415b-a2d0-f8ca7332ba36 Content-Length: - '266' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7040a0fa-295b-4590-869e-f94a753c450f Content-Length: - '93' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find project: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_project_crud.yml000066400000000000000000000316011476630434000274540ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/domains/default body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-7ebfbfac-f074-460a-9920-480e038cec79 Content-Length: - '219' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"domain": {"links": {"self": "http://devstack.openstack.stack:35357/v3/domains/default"}, "enabled": true, "description": "Owns users and tenants (i.e. projects) available on Identity API v2.", "name": "Default", "id": "default"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-foobar46"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-10403bbe-75a3-49df-a028-5226c85af556 Content-Length: - '269' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e"}, "enabled": true, "id": "6c752a162b6e4168b3f451ccf65d495e", "parent_id": null, "domain_id": "default", "name": "p-foobar46"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar46 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-547f8538-2f5a-41d8-b1b9-57078ee475fe Content-Length: - '380' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar46", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e"}, "enabled": true, "id": "6c752a162b6e4168b3f451ccf65d495e", "parent_id": null, "domain_id": "default", "name": "p-foobar46"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e body: encoding: UTF-8 string: '{"project":{"name":"p-baz46","enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:05 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-14f9ef05-8627-402f-8e29-4909d9234e20 Content-Length: - '280' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e"}, "extra": {}, "enabled": false, "id": "6c752a162b6e4168b3f451ccf65d495e", "parent_id": null, "domain_id": "default", "name": "p-baz46"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-baz46 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0c87cf2c-bb43-4ef3-8039-d4514edf2d6c Content-Length: - '375' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-baz46", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e"}, "enabled": false, "id": "6c752a162b6e4168b3f451ccf65d495e", "parent_id": null, "domain_id": "default", "name": "p-baz46"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b5785ad8-74ce-4118-aea6-12a5d7140a4d Content-Length: - '267' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e"}, "enabled": false, "id": "6c752a162b6e4168b3f451ccf65d495e", "parent_id": null, "domain_id": "default", "name": "p-baz46"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-51c214c4-b829-4e6a-9b7f-a7a6da5d9c30 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/6c752a162b6e4168b3f451ccf65d495e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e8712f4e-b15c-4264-ac82-3e9dc774602e Content-Length: - '117' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find project: 6c752a162b6e4168b3f451ccf65d495e", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar46 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-95d04abe-482e-4143-8996-e2705757cad1 Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar46", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-baz46 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e1764b8b-5e2e-4b6b-b8c4-794f2d1a12fa Content-Length: - '121' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-baz46", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:06 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml000066400000000000000000001215701476630434000340420ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar69 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0ac7c43c-5e4e-4a7c-8399-edf7506607a2 Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar69", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar69 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-cb4018ee-c84f-45ea-8a38-ce6bf78601e2 Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar69", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-foobar69"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-46aff0c2-7022-4cd6-8278-910d57e17a8f Content-Length: - '269' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384"}, "enabled": true, "id": "3a68e8c54d394f338c5941fba7ffa384", "parent_id": null, "domain_id": "default", "name": "p-foobar69"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:12 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-91359414-07bf-463c-aa07-a51891089d61 Content-Length: - '111' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=baz", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:12 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"baz69"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b2f5bea2-35d4-4004-ba0c-d8bebd09f12c Content-Length: - '159' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "4f097f450e9a490da45160e7383dfd83", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4f097f450e9a490da45160e7383dfd83"}, "name": "baz69"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:12 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"u-foobar69","email":"foobar@example.com","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9f2cbd93-ea10-4a8b-81af-4a2153776e46 Content-Length: - '236' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "u-foobar69", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae"}, "domain_id": "default", "enabled": true, "email": "foobar@example.com", "id": "8f465eccc83d481b96c23dc6d1afc8ae"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:12 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/groups body: encoding: UTF-8 string: '{"group":{"name":"g-foobar69","description":"Group of Foobar users"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-287749d8-5415-4d85-8266-fd239eaa069e Content-Length: - '230' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"group": {"domain_id": "default", "description": "Group of Foobar users", "id": "7a51f958cf244f689a4a8f07d114ce9f", "links": {"self": "http://devstack.openstack.stack:35357/v3/groups/7a51f958cf244f689a4a8f07d114ce9f"}, "name": "g-foobar69"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:12 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/groups/7a51f958cf244f689a4a8f07d114ce9f/users/8f465eccc83d481b96c23dc6d1afc8ae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-74cdc985-b390-4234-98e7-593258c81fd6 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:12 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-73ee0fce-ede1-4a9d-910f-096a8700ec4d Content-Length: - '147' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-62ee58ef-7400-4931-95a3-93f98cedd758 Content-Length: - '230' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-cb5db544-2781-45bb-aca0-9a13c892d042 Content-Length: - '183' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-820bbb6d-153c-4b10-b465-400baea17eca Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9770049e-03a8-4749-a8ee-388f1bab5243 Content-Length: - '403' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384"}, "enabled": true, "id": "3a68e8c54d394f338c5941fba7ffa384", "parent_id": null, "domain_id": "default", "name": "p-foobar69"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6ddf4005-f910-49dd-9bb3-037c7b699156 X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-bb910e34-db50-46f5-88d9-fc131e55f985 Content-Length: - '332' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles", "previous": null, "next": null}, "roles": [{"id": "4f097f450e9a490da45160e7383dfd83", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4f097f450e9a490da45160e7383dfd83"}, "name": "baz69"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:13 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:13 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-11deae02-4de9-416e-b7c9-a273784649ab Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-cc195f1f-befd-4df8-85e8-4401dcdec670 Content-Length: - '147' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/users/8f465eccc83d481b96c23dc6d1afc8ae/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3d016138-8ba5-497b-99d3-0b571ad0120d Content-Length: - '237' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-bd8bbd7b-28c0-4b01-af09-1c6be556bda1 Content-Length: - '184' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fa98e20e-0390-4ff6-9a8d-5e798ee586d2 Content-Length: - '230' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-edeee499-2994-4ac2-9a7c-476ca22128c0 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-394e9d7e-840e-416d-aafd-278fdbd38218 X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:14 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:14 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-12621309-b9e0-4e3b-8302-934a7db77189 Content-Length: - '333' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles", "previous": null, "next": null}, "roles": [{"id": "4f097f450e9a490da45160e7383dfd83", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4f097f450e9a490da45160e7383dfd83"}, "name": "baz69"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9a4f3cea-ee8c-40a3-8aab-2fa63060c583 Content-Length: - '703' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role_assignments": [{"scope": {"project": {"id": "3a68e8c54d394f338c5941fba7ffa384"}}, "role": {"id": "4f097f450e9a490da45160e7383dfd83"}, "user": {"id": "8f465eccc83d481b96c23dc6d1afc8ae"}, "links": {"assignment": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles/4f097f450e9a490da45160e7383dfd83", "membership": "http://devstack.openstack.stack:35357/v3/groups/7a51f958cf244f689a4a8f07d114ce9f/users/8f465eccc83d481b96c23dc6d1afc8ae"}}], "links": {"self": "http://devstack.openstack.stack:35357/v3/role_assignments?effective=true&scope.project.id=3a68e8c54d394f338c5941fba7ffa384&user.id=8f465eccc83d481b96c23dc6d1afc8ae", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4f997bc4-2668-4b0c-b73a-b65eedf38108 Content-Length: - '403' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384"}, "enabled": true, "id": "3a68e8c54d394f338c5941fba7ffa384", "parent_id": null, "domain_id": "default", "name": "p-foobar69"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f64006b0-9f5a-46c1-89ef-eb70091466bd Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-53371704-cbd7-47bf-95f4-24a176973f4e Content-Length: - '147' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae/projects", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384/groups/7a51f958cf244f689a4a8f07d114ce9f/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6d70c50f-6fe6-42f9-9347-f1180e08bfcb Content-Length: - '237' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/8f465eccc83d481b96c23dc6d1afc8ae body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-cb4ff9d8-72ed-4718-9372-7c13545d576c Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:15 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/groups/7a51f958cf244f689a4a8f07d114ce9f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:15 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-43d4d9e0-678f-4fa9-9138-81a59efd895c Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/4f097f450e9a490da45160e7383dfd83 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-35b4eec9-a860-4400-b236-ad936b605fb0 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384 body: encoding: UTF-8 string: '{"project":{"enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6fa6fc76-85ec-4ad7-b269-59af5116eb7f Content-Length: - '283' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384"}, "extra": {}, "enabled": false, "id": "3a68e8c54d394f338c5941fba7ffa384", "parent_id": null, "domain_id": "default", "name": "p-foobar69"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/3a68e8c54d394f338c5941fba7ffa384 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ba85847c-bc11-4390-9afe-3de69df209fc Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_project_hier_crud_list.yml000066400000000000000000001304761476630434000315300ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-foobar67"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f0035d9e-b696-4d99-8256-7e47ee9f5714 Content-Length: - '269' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267"}, "enabled": true, "id": "f7d00d3e5eb34640b501d9fba857c267", "parent_id": null, "domain_id": "default", "name": "p-foobar67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-baz67","parent_id":"f7d00d3e5eb34640b501d9fba857c267"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:06 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6dafcaf8-ea81-4cb2-b26b-97c964ee25bd Content-Length: - '296' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9"}, "enabled": true, "id": "8dbeb70b63944ec29fed7d2a2e8787b9", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-baz67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-baz67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-070525bf-0cc5-4d5b-99f0-c46a54b8a111 Content-Length: - '404' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-baz67", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9"}, "enabled": true, "id": "8dbeb70b63944ec29fed7d2a2e8787b9", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-baz67"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-boo67","parent_id":"f7d00d3e5eb34640b501d9fba857c267"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-601b65fd-0015-422a-bbdb-7a9cd7f13388 Content-Length: - '296' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c"}, "enabled": true, "id": "1669d877273547948223ad096104cf0c", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-boo67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-booboo67","parent_id":"1669d877273547948223ad096104cf0c"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-64b1f8a6-bc12-44be-a775-09fbeafb9a6a Content-Length: - '299' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed"}, "enabled": true, "id": "57bb6741d40f4ba897f9e8fc742483ed", "parent_id": "1669d877273547948223ad096104cf0c", "domain_id": "default", "name": "p-booboo67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"r-project67"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ab2f303a-868a-4fda-a9f7-2917658adc55 Content-Length: - '165' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "db287d63b02744e2bbcc3a5f44c6ecb7", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/db287d63b02744e2bbcc3a5f44c6ecb7"}, "name": "r-project67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:07 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267/users/205e0e39a2534743b517ed0aa2fbcda7/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-21de9189-3d73-408e-8e1e-679fa90ce2ff Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9/users/205e0e39a2534743b517ed0aa2fbcda7/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:07 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3e25f9d2-6e9e-4760-aa82-27389673c4b7 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c/users/205e0e39a2534743b517ed0aa2fbcda7/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a86a8df4-8e17-4dae-9903-27221ada18c3 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed/users/205e0e39a2534743b517ed0aa2fbcda7/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fd8a9bdf-fe9f-4b98-998c-fc9879cca41a Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267?subtree_as_ids body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-16cb0d17-deda-4a25-8353-1bb39f11d574 Content-Length: - '404' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267"}, "enabled": true, "subtree": {"8dbeb70b63944ec29fed7d2a2e8787b9": null, "1669d877273547948223ad096104cf0c": {"57bb6741d40f4ba897f9e8fc742483ed": null}}, "id": "f7d00d3e5eb34640b501d9fba857c267", "parent_id": null, "domain_id": "default", "name": "p-foobar67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267?subtree_as_list body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8fcd2460-40fb-41f0-a8db-63edd0ea5e56 Content-Length: - '1179' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267"}, "enabled": true, "subtree": [{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c"}, "enabled": true, "id": "1669d877273547948223ad096104cf0c", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-boo67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9"}, "enabled": true, "id": "8dbeb70b63944ec29fed7d2a2e8787b9", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-baz67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed"}, "enabled": true, "id": "57bb6741d40f4ba897f9e8fc742483ed", "parent_id": "1669d877273547948223ad096104cf0c", "domain_id": "default", "name": "p-booboo67"}}], "id": "f7d00d3e5eb34640b501d9fba857c267", "parent_id": null, "domain_id": "default", "name": "p-foobar67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:08 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: UTF-8 string: '{"project":{"name":"p-fooboo67","parent_id":"1669d877273547948223ad096104cf0c"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-48994323-0f34-4ecf-853d-a5beae2441b5 Content-Length: - '299' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6abb35166f704620bc55b7f0f49c390b"}, "enabled": true, "id": "6abb35166f704620bc55b7f0f49c390b", "parent_id": "1669d877273547948223ad096104cf0c", "domain_id": "default", "name": "p-fooboo67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: put uri: http://devstack.openstack.stack:35357/v3/projects/6abb35166f704620bc55b7f0f49c390b/users/205e0e39a2534743b517ed0aa2fbcda7/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:08 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ce29519b-5c7d-4436-af8c-d77487f8b020 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267?subtree_as_list body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-54ae57df-c695-47bf-bf59-1c1da93ef6b9 Content-Length: - '1480' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267"}, "enabled": true, "subtree": [{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c"}, "enabled": true, "id": "1669d877273547948223ad096104cf0c", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-boo67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9"}, "enabled": true, "id": "8dbeb70b63944ec29fed7d2a2e8787b9", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-baz67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed"}, "enabled": true, "id": "57bb6741d40f4ba897f9e8fc742483ed", "parent_id": "1669d877273547948223ad096104cf0c", "domain_id": "default", "name": "p-booboo67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6abb35166f704620bc55b7f0f49c390b"}, "enabled": true, "id": "6abb35166f704620bc55b7f0f49c390b", "parent_id": "1669d877273547948223ad096104cf0c", "domain_id": "default", "name": "p-fooboo67"}}], "id": "f7d00d3e5eb34640b501d9fba857c267", "parent_id": null, "domain_id": "default", "name": "p-foobar67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed?parents_as_ids body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-723f9b20-4aba-4736-97a9-43f506fe1f71 Content-Length: - '392' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed"}, "enabled": true, "id": "57bb6741d40f4ba897f9e8fc742483ed", "parent_id": "1669d877273547948223ad096104cf0c", "parents": {"1669d877273547948223ad096104cf0c": {"f7d00d3e5eb34640b501d9fba857c267": null}}, "domain_id": "default", "name": "p-booboo67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed?parents_as_list body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-04864603-f7f6-420d-9171-ef324e243d22 Content-Length: - '881' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed"}, "enabled": true, "id": "57bb6741d40f4ba897f9e8fc742483ed", "parent_id": "1669d877273547948223ad096104cf0c", "parents": [{"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c"}, "enabled": true, "id": "1669d877273547948223ad096104cf0c", "parent_id": "f7d00d3e5eb34640b501d9fba857c267", "domain_id": "default", "name": "p-boo67"}}, {"project": {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267"}, "enabled": true, "id": "f7d00d3e5eb34640b501d9fba857c267", "parent_id": null, "domain_id": "default", "name": "p-foobar67"}}], "domain_id": "default", "name": "p-booboo67"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/6abb35166f704620bc55b7f0f49c390b body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-61aa7757-d1f9-4f5c-8629-e8ba09321f50 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/57bb6741d40f4ba897f9e8fc742483ed body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5478959b-b750-407f-a101-b7e9b823eb60 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:09 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/1669d877273547948223ad096104cf0c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:09 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b92540e7-223f-4a59-a247-6390cff39994 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/8dbeb70b63944ec29fed7d2a2e8787b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-349115a1-a326-40ce-a5a0-2d131f025085 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-85e52ad9-0150-449a-b9e5-569741a5032a Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/db287d63b02744e2bbcc3a5f44c6ecb7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ab7cfbd6-6a80-439b-b177-1a27bcba4fe5 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/f7d00d3e5eb34640b501d9fba857c267 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fd02cde9-5ea7-4e7c-90a6-b6523ceeba3c Content-Length: - '117' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find project: f7d00d3e5eb34640b501d9fba857c267", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-booboo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9c520bf4-c7d6-4823-9d7e-453bc95df37e Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-booboo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-booboo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-38c8b317-4723-460d-8b14-15c5c16a103e Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-booboo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:10 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-fooboo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4974406b-e1c2-4011-bef7-26c98c850e1a Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-fooboo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-fooboo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:10 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-173d5c13-f82d-4874-b79a-7d310b91902c Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-fooboo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-boo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-dffd059c-1921-4bb7-b4d4-f94b9ea04016 Content-Length: - '121' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-boo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-boo67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c605b49d-3a9b-407b-88eb-c460ddc5ffb2 Content-Length: - '121' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-boo67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-baz67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d60a1bd8-b68f-4d67-9f68-92306c875984 Content-Length: - '121' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-baz67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-baz67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-53753acb-95e7-446c-b604-786459461200 Content-Length: - '121' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-baz67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-78e3ee46-3696-4a62-83e4-28ee7f8f1361 Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects?name=p-foobar67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:11 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f2a46ad3-9669-49b6-b006-464df42e43df Content-Length: - '124' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects?name=p-foobar67", "previous": null, "next": null}, "projects": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:11 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_role.yml000066400000000000000000000302551476630434000257360ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-070d0868-bb88-44d4-9986-4ffc4a0376c5 Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e93f3e40-c027-4dc0-9500-0f87f6f59a71 Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-eff80842-c60b-4479-a101-5980e14ff7d4 Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b84afbf1-7471-4dc5-950d-c0f15fef179f Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-91306740-13cd-447e-b82c-e2ba052f0485 Content-Length: - '90' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find role: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_role_crud.yml000066400000000000000000000433141476630434000267530ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: UTF-8 string: '{"role":{"name":"foobar23"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-85e9ab54-21aa-4219-a3bd-b32823e18a2a Content-Length: - '162' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "32788c44cae74e09bc0e8d36550e28ee", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee"}, "name": "foobar23"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:03 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=foobar23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b6cbcc88-e89c-4611-b7fe-561a3056c948 Content-Length: - '268' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=foobar23", "previous": null, "next": null}, "roles": [{"id": "32788c44cae74e09bc0e8d36550e28ee", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee"}, "name": "foobar23"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee body: encoding: UTF-8 string: '{"role":{"name":"baz23"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:03 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-de246498-1cf5-4613-9dca-5fe2fb3d3e87 Content-Length: - '159' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"role": {"id": "32788c44cae74e09bc0e8d36550e28ee", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee"}, "name": "baz23"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=baz23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-baacc52f-5046-4db1-8b1f-224d8c5da01a Content-Length: - '262' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=baz23", "previous": null, "next": null}, "roles": [{"id": "32788c44cae74e09bc0e8d36550e28ee", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee"}, "name": "baz23"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-17587a9b-1916-4a20-845d-0f8b5570eb29 Content-Length: - '1659' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "32788c44cae74e09bc0e8d36550e28ee", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee"}, "name": "baz23"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-767e21dc-761e-4482-95fd-5a3e0b27f8d0 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-63f42dcb-4c22-4061-a8ee-7919b55bfb96 Content-Length: - '1508' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles", "previous": null, "next": null}, "roles": [{"id": "13c811edcd2a46dca5fed6252fd50cd2", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/13c811edcd2a46dca5fed6252fd50cd2"}, "name": "service"}, {"id": "4572d4dbab1e4b31b9c6ac7b63e2f8e1", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/4572d4dbab1e4b31b9c6ac7b63e2f8e1"}, "name": "testrole"}, {"id": "48464b0373554d74b87e14380df097e6", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/48464b0373554d74b87e14380df097e6"}, "name": "monitoring-delegate"}, {"id": "5929fb4077c3415c9850e66f2c2be16b", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/5929fb4077c3415c9850e66f2c2be16b"}, "name": "admin"}, {"id": "7e4e00f7c94145a1855f39c32331ff5d", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/7e4e00f7c94145a1855f39c32331ff5d"}, "name": "monasca-user"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d46ad249d4dd40eb840d20ec917d682e"}, "name": "ResellerAdmin"}, {"id": "d97660751404495ab8c405826d547c16", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/d97660751404495ab8c405826d547c16"}, "name": "Member"}, {"id": "eb4ca4ce31d748ccb91d2052a2f5bedf", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb4ca4ce31d748ccb91d2052a2f5bedf"}, "name": "monasca-agent"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "links": {"self": "http://devstack.openstack.stack:35357/v3/roles/eb9f0f3b348042ffa65f9d33e5d72014"}, "name": "anotherrole"}]}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles/32788c44cae74e09bc0e8d36550e28ee body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-14d9b30f-b67c-4c3e-90cf-7232fc9c0ab8 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find role: 32788c44cae74e09bc0e8d36550e28ee", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=foobar23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-200a1853-04ec-4f30-a376-914f910f4bc5 Content-Length: - '116' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=foobar23", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=baz23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ac4e4ede-90ac-4d55-afb5-2b20b53fe71e Content-Length: - '113' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=baz23", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:04 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=foobar23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-63dce21f-5040-49ca-9a7d-580872931597 Content-Length: - '116' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=foobar23", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/roles?name=baz23 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:04 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-36760e9e-4666-42bd-8c0d-e249e37e069d Content-Length: - '113' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/roles?name=baz23", "previous": null, "next": null}, "roles": []}' http_version: recorded_at: Tue, 03 May 2016 13:52:05 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_service.yml000066400000000000000000000446371476630434000264460ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6c09504b-f879-42ec-86f6-c4c317114cd3 Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-5df19884-3a62-4223-9554-d9d79b460c0a Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:16 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:16 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f7eb9de0-5c6f-44ec-a9c4-6fb962b64d25 Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b58b66d8-542e-45cd-a777-12889353fa30 Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/atlantis body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c418fb9b-9490-4ab9-9adf-b0515cc83e3a Content-Length: - '93' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find project: atlantis", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_services_crud.yml000066400000000000000000000706541476630434000276440ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-185a5643-c949-45b6-802a-00fe5d6ca80c Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/services body: encoding: UTF-8 string: '{"service":{"type":"volume","name":"foobar"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fd741145-6e96-402d-a005-5a54459a647b Content-Length: - '201' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"service": {"enabled": true, "type": "volume", "name": "foobar", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480"}, "id": "946ebec56e6b4a0eab31a70a51516480"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services?type=volume body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c7601a21-6ee0-4d1b-9927-10393a17fd2f Content-Length: - '538' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"enabled": true, "type": "volume", "name": "foobar", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480"}, "id": "946ebec56e6b4a0eab31a70a51516480"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services?type=volume", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480 body: encoding: UTF-8 string: '{"service":{"name":"baz"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f821031f-0847-40ac-b070-ebbe5475f224 Content-Length: - '198' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"service": {"enabled": true, "type": "volume", "name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480"}, "id": "946ebec56e6b4a0eab31a70a51516480"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c095bcac-2e19-40fe-b00f-e86163fb4d2d Content-Length: - '3115' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"enabled": true, "type": "volume", "name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480"}, "id": "946ebec56e6b4a0eab31a70a51516480"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:17 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d6dc2de3-a10d-46ad-a576-734d49fef08a Content-Length: - '3115' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"enabled": true, "type": "volume", "name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480"}, "id": "946ebec56e6b4a0eab31a70a51516480"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/services/946ebec56e6b4a0eab31a70a51516480 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:52:17 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-011564e2-9c8d-49fa-9517-a00237382ef3 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-511b1c15-4c0d-4a8c-9f3e-e81c480dcfef Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects/946ebec56e6b4a0eab31a70a51516480 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-37347309-b18a-47c7-955c-c7f9b496d63b Content-Length: - '117' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find project: 946ebec56e6b4a0eab31a70a51516480", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/services body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:52:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e0a961db-f3b1-4388-9b67-d2334a64caec Content-Length: - '2928' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"services": [{"description": "Cinder Volume Service V2", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/1766683b2f9f4ef2acf7f9e4e359fb9a"}, "enabled": true, "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/18dbb2f0ddeb45b99d11ed0568f153ab"}, "enabled": true, "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"description": "Ceilometer Metering Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/261a2c1f467c4b148f38822ae9f179a3"}, "enabled": true, "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"description": "Keystone Identity Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/311850187e5a47108ac9b43ec5346658"}, "enabled": true, "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"description": "Nova Compute Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/3fd114ff2cff43be8bd3ecc5bc117ec8"}, "enabled": true, "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"description": "Cinder Volume Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/4a6033d57e30494a9577358d90d08123"}, "enabled": true, "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"description": "EC2 Compatibility Layer", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/5eff43878c134ae7a5f405cf0d191aff"}, "enabled": true, "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"description": "Monasca Monitoring Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/73e3bfb0b1b944f0ace3a078baad1fcc"}, "enabled": true, "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"description": "Nova Compute Service (Legacy 2.0)", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/92e80becd6d8462b8f51fb227eb11999"}, "enabled": true, "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"description": "Glance Image Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/b936e5bfd38e4a3b97fcb8d08840881f"}, "enabled": true, "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"description": "Neutron Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/c626cfc79ed34e3699c2d96c58d105cd"}, "enabled": true, "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"description": "Swift Service", "links": {"self": "http://devstack.openstack.stack:35357/v3/services/e6a92b95728740ea9bda0c348a89f0f1"}, "enabled": true, "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/services", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:52:18 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_token.yml000066400000000000000000000543611476630434000261210ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:35357/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"id":"205e0e39a2534743b517ed0aa2fbcda7","password":"password"}}},"scope":{"project":{"domain":{"name":"Default"},"name":"admin"}}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d Vary: - X-Auth-Token X-Openstack-Request-Id: - req-238d6c57-319c-487e-9f44-526c4ca6eb9d Content-Length: - '7433' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "13c811edcd2a46dca5fed6252fd50cd2", "name": "service"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:53.320248Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["EaiaCg6sTAGUoaUEwVVwww"], "issued_at": "2016-05-03T13:51:53.320296Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d Vary: - X-Auth-Token X-Openstack-Request-Id: - req-a76dee30-5adf-4822-aeba-3ddbf8507fca Content-Length: - '7433' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "13c811edcd2a46dca5fed6252fd50cd2", "name": "service"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T14:51:53.320248Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "name": "admin"}, "catalog": [{"endpoints": [{"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "1ebe166449b34147ac4df07e492571d9"}, {"url": "http://devstack.openstack.stack:8776/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"url": "http://devstack.openstack.stack:35357/v3", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "634d57ce5d534c808afb24127b7ac355"}, {"url": "http://devstack.openstack.stack:5000/v3", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"url": "http://devstack.openstack.stack:5000/v3", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"url": "http://devstack.openstack.stack:8774/v2.1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "bb95738666b94144802d02b313a3520d"}, {"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"url": "http://devstack.openstack.stack:8776/v1/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8773/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"url": "http://devstack.openstack.stack:8773/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"url": "http://devstack.openstack.stack:8773/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "11d18be7930947f696db531c9bbdf245"}, {"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "0f962cae636846009772e0bd81c39d49"}, {"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "36828cbcbe6843dbace247d1674e924a"}, {"url": "http://devstack.openstack.stack:8774/v2/f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"url": "http://devstack.openstack.stack:9292", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "acebdcb3418045b9a62ed295349327c3"}, {"url": "http://devstack.openstack.stack:9292", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"url": "http://devstack.openstack.stack:9292", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"url": "http://devstack.openstack.stack:9696/", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "1a6718d75cd94e24993a27d275442a17"}, {"url": "http://devstack.openstack.stack:9696/", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"url": "http://devstack.openstack.stack:9696/", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "6531f16841454331908be0fb35dca95a"}, {"url": "http://devstack.openstack.stack:8090/v1/AUTH_f17a4813648d4b0bb82124ca1f5f1fd0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"url": "http://devstack.openstack.stack:8090", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["EaiaCg6sTAGUoaUEwVVwww"], "issued_at": "2016-05-03T13:51:53.320296Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d Vary: - X-Auth-Token X-Openstack-Request-Id: - req-71e552e5-b39d-41a1-8acf-546a01de9d0f Content-Length: - '7433' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-fd5cb37c-6991-4ec2-8a25-ff3bd66f7488 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT - request: method: head uri: http://devstack.openstack.stack:35357/v3/auth/tokens body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 X-Subject-Token: - 1dc89d8823b64c8d8e0f49f409da3d8d response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:53 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4976401f-9aec-4380-b758-fa5263d2ffce Content-Length: - '115' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:53 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_user_crud.yml000066400000000000000000001174571476630434000270020ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-8c96317c-0d8c-4594-9167-5a06771d1ac0 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-78ae0c91-7c1d-42f1-894a-8c6e21d58b54 Content-Length: - '111' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6c197921-7e8f-4610-9e23-646337864be7 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6ee70849-d434-4cae-845d-e10f9672b0c9 Content-Length: - '111' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"foobar","email":"foobar@example.com","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1774f327-31de-4460-858e-0c5db5178e1a Content-Length: - '232' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "foobar", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537"}, "domain_id": "default", "enabled": true, "email": "foobar@example.com", "id": "c5ab355261c54e56a2a1956080a1a537"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-aaa7ab2b-4e44-475e-99e5-6e9c9dacea5c Content-Length: - '336' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "foobar", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537"}, "domain_id": "default", "enabled": true, "email": "foobar@example.com", "id": "c5ab355261c54e56a2a1956080a1a537"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT - request: method: patch uri: http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537 body: encoding: UTF-8 string: '{"user":{"name":"baz","enabled":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:47 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ad8e640a-0286-44ea-9a14-02c9f355e330 Content-Length: - '272' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"user": {"name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537"}, "extra": {"email": "foobar@example.com"}, "domain_id": "default", "enabled": false, "email": "foobar@example.com", "id": "c5ab355261c54e56a2a1956080a1a537"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:48 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6feffb95-aac3-4370-8d74-bd9bc7471e81 Content-Length: - '331' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537"}, "domain_id": "default", "enabled": false, "email": "foobar@example.com", "id": "c5ab355261c54e56a2a1956080a1a537"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:48 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b0d2cb32-af75-4898-ab19-1d2a08e8cc66 Content-Length: - '6410' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "baz", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537"}, "domain_id": "default", "enabled": false, "email": "foobar@example.com", "id": "c5ab355261c54e56a2a1956080a1a537"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:48 GMT - request: method: post uri: http://devstack.openstack.stack:35357/v3/users body: encoding: UTF-8 string: '{"user":{"name":"baz","email":"foobar@example.com","password":"s3cret!"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 409 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-693492a1-e9f2-4f8a-b0b7-8a45b9d95c33 Content-Length: - '120' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Conflict occurred attempting to store user - Duplicate Entry", "code": 409, "title": "Conflict"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:48 GMT - request: method: delete uri: http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 204 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d20325b6-13f3-4367-ab36-b9201ce4f256 Content-Length: - '0' X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 13:51:48 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-22ec6e20-bc1f-42d0-a5ca-861cf0803434 Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/c5ab355261c54e56a2a1956080a1a537 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:48 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ed589f6d-306b-4f96-98d9-c08aa91016fb Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find user: c5ab355261c54e56a2a1956080a1a537", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ccd1fb84-505f-430a-b961-a6c7d44e9394 Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3a72b66e-f5c4-4340-8023-99e9bfd1e155 Content-Length: - '114' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=foobar", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:49 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-210cfffb-90fb-45b5-9325-ff8ab9e29408 Content-Length: - '111' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=baz", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:49 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/identity_v3/idv3_users.yml000066400000000000000000001063571476630434000261450ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9df51694-9cc3-4fdf-ada5-d2e56de7e964 Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users/u-random-blah body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 404 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-46114116-48bb-4bf3-b528-8b4c66a37027 Content-Length: - '95' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"error": {"message": "Could not find user: u-random-blah", "code": 404, "title": "Not Found"}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=admin body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-0aad0e62-16a2-424f-b780-461e29589f68 Content-Length: - '303' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=admin", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9d2687c4-ff02-4262-9e29-c1cb9596e91d Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-844ef04c-63dc-43b7-ad98-b612b282f64f Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1d47b73e-14cc-40e0-9c09-65e44cb7b50e Content-Length: - '6188' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [{"name": "swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/0536d9fac63c465ebf60a2a5f87bea1f"}, "enabled": true, "id": "0536d9fac63c465ebf60a2a5f87bea1f", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/1432886c5942446988bd6796a72bd08c"}, "description": "Monasca Api User", "name": "monascaapi", "domain_id": "default", "enabled": true, "id": "1432886c5942446988bd6796a72bd08c", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/19f57ca4000744a39da3e13611a7e8b9"}, "description": "test user for billing", "name": "dummy4", "domain_id": "default", "enabled": true, "id": "19f57ca4000744a39da3e13611a7e8b9", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "admin", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/205e0e39a2534743b517ed0aa2fbcda7"}, "enabled": true, "id": "205e0e39a2534743b517ed0aa2fbcda7", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/35cd2200d034490bba3d0228a189e80b"}, "description": "test user for billing", "name": "dummy8", "domain_id": "default", "enabled": true, "id": "35cd2200d034490bba3d0228a189e80b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42238d2a0e884ef5b334db9e14ccf90b"}, "description": "test user for billing", "name": "dummy9", "domain_id": "default", "enabled": true, "id": "42238d2a0e884ef5b334db9e14ccf90b", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/42a9988a47134aa2aaa0deafef474d97"}, "description": "Ceilometer User", "name": "ceilometer", "domain_id": "default", "enabled": true, "id": "42a9988a47134aa2aaa0deafef474d97", "default_project_id": "2ab82e30d7984631874def67813dffd8"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/54956227818d4bf7a98a59af580708c2"}, "description": "Monasca Agent User", "name": "monascaagent", "domain_id": "default", "enabled": true, "id": "54956227818d4bf7a98a59af580708c2", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/55600cdc25c042bfb197c83bc31042bb"}, "description": "test user for billing", "name": "dummy3", "domain_id": "default", "enabled": true, "id": "55600cdc25c042bfb197c83bc31042bb", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "swiftusertest1", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/5955f4b81f414da6ace5b2e8949d047f"}, "domain_id": "default", "enabled": true, "email": "test@example.com", "id": "5955f4b81f414da6ace5b2e8949d047f"}, {"name": "swiftusertest2", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/6e53f10a91c44e15a9ad8cca2facd5a8"}, "domain_id": "default", "enabled": true, "email": "test2@example.com", "id": "6e53f10a91c44e15a9ad8cca2facd5a8"}, {"name": "cinder", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/7031bcf1a2f344f483d137b5f5d4659a"}, "enabled": true, "id": "7031bcf1a2f344f483d137b5f5d4659a", "domain_id": "default"}, {"name": "glance-swift", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/72ec469780214348abe5ac51cd96157b"}, "domain_id": "default", "enabled": true, "email": "glance-swift@example.com", "id": "72ec469780214348abe5ac51cd96157b"}, {"name": "swiftusertest3", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/8308d6e0421c458bb3e9a979ccf61aa1"}, "domain_id": "default", "enabled": true, "email": "test3@example.com", "id": "8308d6e0421c458bb3e9a979ccf61aa1"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/83c4eeb1c25244c6a3363ff3e5c70c02"}, "description": "test user for billing", "name": "dummy6", "domain_id": "default", "enabled": true, "id": "83c4eeb1c25244c6a3363ff3e5c70c02", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/9c001a7ca2544d6ba4877a767ad85c32"}, "description": "test user for billing", "name": "dummy2", "domain_id": "default", "enabled": true, "id": "9c001a7ca2544d6ba4877a767ad85c32", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/a3fb78a663ee4675a5ff1aedb95d122c"}, "description": "test user for billing", "name": "dummy", "domain_id": "default", "enabled": true, "id": "a3fb78a663ee4675a5ff1aedb95d122c", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "neutron", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ac4e77c52dd048b7afd84f3bf63a70af"}, "enabled": true, "id": "ac4e77c52dd048b7afd84f3bf63a70af", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/b43dad2bc931442a92768883f55a81c3"}, "description": "test user for billing", "name": "dummy5", "domain_id": "default", "enabled": true, "id": "b43dad2bc931442a92768883f55a81c3", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}, {"name": "demo", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d66fbe28f45a405a87fd32bb30f7c42e"}, "domain_id": "default", "enabled": true, "email": "demo@example.com", "id": "d66fbe28f45a405a87fd32bb30f7c42e"}, {"name": "glance", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/d93c389c04e54300931765702727c7e9"}, "enabled": true, "id": "d93c389c04e54300931765702727c7e9", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/e82af7ca715e4a8a97fbb898e8208ee9"}, "description": "Monasca Admin User", "name": "monascaadmin", "domain_id": "default", "enabled": true, "id": "e82af7ca715e4a8a97fbb898e8208ee9", "default_project_id": "30079dd13fb1488a88e6ee32f3e0b9ac"}, {"name": "nova", "links": {"self": "http://devstack.openstack.stack:35357/v3/users/ec19ce44e69049efbbb6f190e0ed8b69"}, "enabled": true, "id": "ec19ce44e69049efbbb6f190e0ed8b69", "domain_id": "default"}, {"links": {"self": "http://devstack.openstack.stack:35357/v3/users/f8eba8de99cc4f4682ea634dd90c60ac"}, "description": "test user for billing", "name": "dummy7", "domain_id": "default", "enabled": true, "id": "f8eba8de99cc4f4682ea634dd90c60ac", "default_project_id": "a5db6ff5a6274dd589b6a05945d7f34d"}], "links": {"self": "http://devstack.openstack.stack:35357/v3/users", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:46 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/users?name=pimpernel body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7f72291092a647578b115b853d129693 response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 13:51:46 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c36d5c92-7fce-4300-a7d0-39dcde5a2624 Content-Length: - '117' Content-Type: - application/json X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"users": [], "links": {"self": "http://devstack.openstack.stack:35357/v3/users?name=pimpernel", "previous": null, "next": null}}' http_version: recorded_at: Tue, 03 May 2016 13:51:47 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/image_v1/000077500000000000000000000000001476630434000225475ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/image_v1/common_setup.yml000066400000000000000000000172651476630434000260150ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:00:03 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 3e7674510b954bc29f8da4cd6e1d663a Vary: - X-Auth-Token X-Openstack-Request-Id: - req-316d44b0-a930-4e64-85b5-6ded3e171bd2 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T15:00:03.863255Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "imagev1", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["Nvg8MsIeQjWU68Vg_3U_JA"], "issued_at": "2016-05-03T14:00:03.863306Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:00:04 GMT - request: method: get uri: http://devstack.openstack.stack:9292/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3e7674510b954bc29f8da4cd6e1d663a response: status: code: 300 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '654' Date: - Tue, 03 May 2016 14:00:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.3", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.2", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.1", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v1.1", "links": [{"href": "http://devstack.openstack.stack:9292/v1/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v1.0", "links": [{"href": "http://devstack.openstack.stack:9292/v1/", "rel": "self"}]}]}' http_version: recorded_at: Tue, 03 May 2016 14:00:04 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/image_v1/images_v1_find_by_id.yml000066400000000000000000000046751476630434000273270ustar00rootroot00000000000000--- http_interactions: - request: method: head uri: http://devstack.openstack.stack:9292/v1/images/ea20c966-d2fb-4287-a2eb-7bece9af4263 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '0' X-Image-Meta-Checksum: - 8a40c862b5735975d82605c1dd395796', X-Image-Meta-Container_format: - aki X-Image-Meta-Created_at: - '2016-01-06T03:22:20.000000' X-Image-Meta-Deleted: - 'False' X-Image-Meta-Disk_format: - aki X-Image-Meta-Id: - ea20c966-d2fb-4287-a2eb-7bece9af4263 X-Image-Meta-Is_public: - 'True' X-Image-Meta-Min_disk: - '0' X-Image-Meta-Min_ram: - '0' X-Image-Meta-Name: - cirros-0.3.4-x86_64-uec-kernel X-Image-Meta-Owner: - 13cc6052265b41529e2fd0fc461fa8ef X-Image-Meta-Protected: - 'False' X-Image-Meta-Size: - '4979632' X-Image-Meta-Status: - deactivated X-Image-Meta-Updated_at: - '2016-02-25T03:02:05.000000' X-Openstack-Request-Id: - req-3ff0af92-827c-4e9d-bf1b-da27d93e4acb X-Image-Meta-Property-foo: - 'bar' Date: - Thu, 25 Aug 2016 17:09:02 GMT Connection: - close body: '' http_version: recorded_at: Thu, 25 Aug 2016 17:09:02 GMT - request: method: head uri: http://devstack.openstack.stack:9292/v1/images/non-existing-id body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 404 message: '' headers: Content-Length: - '79' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-28577b1e-64c3-463c-b9eb-540fb24ce017 Date: - Fri, 26 Aug 2016 00:36:37 GMT Connection: - close body: encoding: UTF-8 string: "404 Not Found\n\nNo image found with ID 11111111-2222-3333-aaaa-bbbbbbcccce2\n\n \ " http_version: recorded_at: Fri, 26 Aug 2016 00:36:37 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v1/list_images.yml000066400000000000000000000066311476630434000256000ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:9292/v1/images/detail body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3e7674510b954bc29f8da4cd6e1d663a response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '2244' X-Openstack-Request-Id: - req-497d2610-6da3-446d-99cf-ddb01afb7855 Date: - Tue, 03 May 2016 14:00:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"images": [{"status": "deleted", "deleted_at": null, "name": "test-image", "deleted": false, "container_format": "bare", "created_at": "2016-03-31T14:25:51.000000", "disk_format": "iso", "updated_at": "2016-04-29T16:47:12.000000", "min_disk": 10, "protected": false, "id": "afee0fe8-2d05-4af7-a33a-43d01ad260c4", "min_ram": 2, "checksum": "11ee7e2a449415cec8feb5dc7dbee064", "owner": "a5db6ff5a6274dd589b6a05945d7f34d", "is_public": true, "virtual_size": null, "properties": {"kernel_id": "7eff86d0-fd53-4bcf-a444-367ec927c09a", "ramdisk_id": "ab93f1b5-b10c-4387-90d5-5c6abbab12cf", "description": "asewertwerty"}, "size": 11116544}, {"status": "active", "deleted_at": null, "name": "cirros-0.3.4-x86_64-uec", "deleted": false, "container_format": "ami", "created_at": "2016-02-05T11:39:36.000000", "disk_format": "ami", "updated_at": "2016-02-05T11:39:40.000000", "min_disk": 0, "protected": false, "id": "ea20c966-d2fb-4287-a2eb-7bece9af4263", "min_ram": 0, "checksum": "eb9139e4942121f22bbc2afc0400b2a4", "owner": "f17a4813648d4b0bb82124ca1f5f1fd0", "is_public": true, "virtual_size": null, "properties": {"kernel_id": "7eff86d0-fd53-4bcf-a444-367ec927c09a", "ramdisk_id": "ab93f1b5-b10c-4387-90d5-5c6abbab12cf"}, "size": 25165824}, {"status": "active", "deleted_at": null, "name": "cirros-0.3.4-x86_64-uec-ramdisk", "deleted": false, "container_format": "ari", "created_at": "2016-02-05T11:39:30.000000", "disk_format": "ari", "updated_at": "2016-02-05T11:39:35.000000", "min_disk": 0, "protected": false, "id": "ab93f1b5-b10c-4387-90d5-5c6abbab12cf", "min_ram": 0, "checksum": "be575a2b939972276ef675752936977f", "owner": "f17a4813648d4b0bb82124ca1f5f1fd0", "is_public": true, "virtual_size": null, "properties": {}, "size": 3740163}, {"status": "active", "deleted_at": null, "name": "cirros-0.3.4-x86_64-uec-kernel", "deleted": false, "container_format": "aki", "created_at": "2016-02-05T11:39:24.000000", "disk_format": "aki", "updated_at": "2016-02-05T11:39:29.000000", "min_disk": 0, "protected": false, "id": "7eff86d0-fd53-4bcf-a444-367ec927c09a", "min_ram": 0, "checksum": "8a40c862b5735975d82605c1dd395796", "owner": "f17a4813648d4b0bb82124ca1f5f1fd0", "is_public": true, "virtual_size": null, "properties": {}, "size": 4979632}]}' http_version: recorded_at: Tue, 03 May 2016 14:00:04 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/000077500000000000000000000000001476630434000225505ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/common_setup.yml000066400000000000000000000142161476630434000260070ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:00:45 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 1e843e1adc5342dab74687f6b359185c Vary: - X-Auth-Token X-Openstack-Request-Id: - req-71c4c5cc-38d0-4bfc-aa85-81a04d816ddb Content-Length: - '3295' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "54beb701fd194cfc8600fe358b14e99c", "name": "admin"}], "expires_at": "2016-05-03T15:00:45.703477Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "00de3d649e324fcf8a66b362a3687b72", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "45841e0fac3e41eeb2561f5a85101279"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "bd93760c233c4b5793a6f82b0770d23b"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "f0cc2f6993964a7ba4f1a5e796ef950d"}], "type": "ec2", "id": "35279a25c72d48a6ac0cab0e99b35459", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "9dd15d851abf45a68531ed4f4fc6c9d2"}], "type": "object-store", "id": "4256c7122678438bade02e389d5c8682", "name": "swift"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "0e4d0840d6504ac0a6886eeae65f608c"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "21407a1201ab40ee9458c7fe981085ab"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "fdc5ce9024564ae0857721179d6b4940"}], "type": "image", "id": "52860cd91fc542b19500b52985d7ecab", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "0cb1a9d6f2b64620b5c3bd85b2413687"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "905e2c151f7642b7a80edb0f0739b3d0"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "b542d03c2e684a568615d7e1b87fd047"}], "type": "network", "id": "847aa84eb33d471ea49d7f41a22ce2bb", "name": "neutron"}, {"endpoints": [], "type": "volume", "id": "8df5e244dea64adb83744c737a1edda6", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "209de9a4608548e4a87ff184cfbde55f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "615d29cd6153444f814a2137ba723162"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8831f6ecb09046b399df7b1ebe4e62a2"}], "type": "identity", "id": "92e44f530d304e9593c847f244dc4dd0", "name": "keystone"}, {"endpoints": [], "type": "compute_legacy", "id": "ae6c4e3334dd4d2da991866a203dfe33", "name": "nova_legacy"}, {"endpoints": [], "type": "compute", "id": "c6cafaf090a040f696d2b0051d3372aa", "name": "nova"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "b5c55585b3fb43868ffe84ef2e197b3a", "name": "admin"}, "audit_ids": ["-a5pa574Ry27YoJJHhWdeA"], "issued_at": "2016-05-03T14:00:45.703534Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:00:45 GMT - request: method: get uri: http://devstack.openstack.stack:9292/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 300 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '654' Date: - Tue, 03 May 2016 14:00:45 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.3", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.2", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.1", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v1.1", "links": [{"href": "http://devstack.openstack.stack:9292/v1/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v1.0", "links": [{"href": "http://devstack.openstack.stack:9292/v1/", "rel": "self"}]}]}' http_version: recorded_at: Tue, 03 May 2016 14:00:46 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_schema.json000066400000000000000000000116451476630434000260540ustar00rootroot00000000000000{ "additionalProperties": { "type": "string" }, "name": "image", "links": [{ "href": "{self}", "rel": "self" }, { "href": "{file}", "rel": "enclosure" }, { "href": "{schema}", "rel": "describedby" }], "properties": { "status": { "enum": ["queued", "saving", "active", "killed", "deleted", "pending_delete"], "type": "string", "description": "Status of the image (READ-ONLY)" }, "tags": { "items": { "type": "string", "maxLength": 255 }, "type": "array", "description": "List of strings related to the image" }, "kernel_id": { "pattern": "^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$", "type": "string", "description": "ID of image stored in Glance that should be used as the kernel when booting an AMI-style image.", "is_base": false }, "container_format": { "enum": [null, "ami", "ari", "aki", "bare", "ovf", "ova"], "type": ["null", "string"], "description": "Format of the container" }, "min_ram": { "type": "integer", "description": "Amount of ram (in MB) required to boot image." }, "ramdisk_id": { "pattern": "^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$", "type": "string", "description": "ID of image stored in Glance that should be used as the ramdisk when booting an AMI-style image.", "is_base": false }, "locations": { "items": { "required": ["url", "metadata"], "type": "object", "properties": { "url": { "type": "string", "maxLength": 255 }, "metadata": { "type": "object" } } }, "type": "array", "description": "A set of URLs to access the image file kept in external store" }, "visibility": { "enum": ["public", "private"], "type": "string", "description": "Scope of image accessibility" }, "updated_at": { "type": "string", "description": "Date and time of the last image modification (READ-ONLY)" }, "owner": { "type": ["null", "string"], "description": "Owner of the image", "maxLength": 255 }, "file": { "type": "string", "description": "(READ-ONLY)" }, "min_disk": { "type": "integer", "description": "Amount of disk space (in GB) required to boot image." }, "virtual_size": { "type": ["null", "integer"], "description": "Virtual size of image in bytes (READ-ONLY)" }, "id": { "pattern": "^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$", "type": "string", "description": "An identifier for the image" }, "size": { "type": ["null", "integer"], "description": "Size of image file in bytes (READ-ONLY)" }, "instance_uuid": { "type": "string", "description": "ID of instance used to create this image.", "is_base": false }, "os_distro": { "type": "string", "description": "Common name of operating system distribution as specified in http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html", "is_base": false }, "name": { "type": ["null", "string"], "description": "Descriptive name for the image", "maxLength": 255 }, "checksum": { "type": ["null", "string"], "description": "md5 hash of image contents. (READ-ONLY)", "maxLength": 32 }, "created_at": { "type": "string", "description": "Date and time of image registration (READ-ONLY)" }, "disk_format": { "enum": [null, "ami", "ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vdi", "iso"], "type": ["null", "string"], "description": "Format of the disk" }, "os_version": { "type": "string", "description": "Operating system version as specified by the distributor", "is_base": false }, "protected": { "type": "boolean", "description": "If true, image will not be deletable." }, "architecture": { "type": "string", "description": "Operating system architecture as specified in http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html", "is_base": false }, "direct_url": { "type": "string", "description": "URL to access the image file kept in external store (READ-ONLY)" }, "self": { "type": "string", "description": "(READ-ONLY)" }, "schema": { "type": "string", "description": "(READ-ONLY)" } } }fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_activation.yml000066400000000000000000027555031476630434000272260ustar00rootroot00000000000000--- http_interactions: - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-c05ae363-938e-410e-88c8-6c00e2cf91bf Date: - Thu, 25 Aug 2016 17:08:39 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:39 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '699' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-f31274b2-4241-4a54-854c-be11c7397e98 Date: - Thu, 25 Aug 2016 17:08:39 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar3a", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:39Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:39Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/97758036-b92a-46d6-bd1b-90315fd7706a", "metadata": {}}], "self": "/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a", "min_disk": 0, "protected": false, "id": "97758036-b92a-46d6-bd1b-90315fd7706a", "file": "/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:39 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/actions/deactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-0e904fa1-df30-452d-b957-201a15020c82 Date: - Thu, 25 Aug 2016 17:08:40 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:40 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 403 message: '' headers: Content-Length: - '95' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-1686dd22-86dd-4706-a222-dcc010361570 Date: - Thu, 25 Aug 2016 17:08:40 GMT Connection: - close body: encoding: UTF-8 string: "403 Forbidden\n\nThe requested image has been deactivated. Image data download is forbidden.\n\n " http_version: recorded_at: Thu, 25 Aug 2016 17:08:40 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/actions/reactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-47074c9b-7a94-40ee-a374-12001d544964 Date: - Thu, 25 Aug 2016 17:08:40 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:40 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-028fbda5-b492-4417-a536-d710626b87e0 Date: - Thu, 25 Aug 2016 17:08:41 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 17:08:41 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/97758036-b92a-46d6-bd1b-90315fd7706a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-aca1b844-0e2e-438e-9d23-d9b6533496e6 Date: - Thu, 25 Aug 2016 17:08:42 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:42 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4f803d95-7477-459e-b336-85df61366d0c Date: - Thu, 25 Aug 2016 17:30:08 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:08 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '699' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-33109fbe-43d2-4341-abaa-b95d813beb4e Date: - Thu, 25 Aug 2016 17:30:09 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar3a", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:30:08Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:09Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31", "metadata": {}}], "self": "/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31", "min_disk": 0, "protected": false, "id": "7dd72c69-952c-4d27-966b-7e9cc7b78f31", "file": "/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:09 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/actions/deactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-41cb447a-f203-41a3-bc99-6eab6803358b Date: - Thu, 25 Aug 2016 17:30:09 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:09 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 403 message: '' headers: Content-Length: - '95' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-da2acfe7-ce0c-4873-845a-1d94a76fddfa Date: - Thu, 25 Aug 2016 17:30:09 GMT Connection: - close body: encoding: UTF-8 string: "403 Forbidden\n\nThe requested image has been deactivated. Image data download is forbidden.\n\n " http_version: recorded_at: Thu, 25 Aug 2016 17:30:09 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/actions/reactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-a124f861-8f5e-4c18-bf5f-9d2b355ad3e3 Date: - Thu, 25 Aug 2016 17:30:09 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:09 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-73618edc-6cb4-4380-9efb-8b584878635b Date: - Thu, 25 Aug 2016 17:30:10 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 17:30:10 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/7dd72c69-952c-4d27-966b-7e9cc7b78f31 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-df35a1cb-fa8e-4dcb-8237-00a05b75b75f Date: - Thu, 25 Aug 2016 17:30:10 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:10 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar3a","container_format":"ovf","disk_format":"vmdk"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '568' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4 X-Openstack-Request-Id: - req-38556951-db37-42e7-b412-b8fc5b72796d Date: - Thu, 25 Aug 2016 22:37:13 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3a", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:13Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:13Z", "visibility": "private", "locations": [], "self": "/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4", "min_disk": 0, "protected": false, "id": "9b3bf9df-8251-4594-aa33-2ab7563925d4", "file": "/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:13 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-c10c0c9a-bfc7-4a4c-8ebc-2c4a6d46bdda Date: - Thu, 25 Aug 2016 22:37:13 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:13 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '699' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-eea7ca84-938e-48d0-95b6-1c29af4c1e4f Date: - Thu, 25 Aug 2016 22:37:14 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar3a", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:13Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:14Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/9b3bf9df-8251-4594-aa33-2ab7563925d4", "metadata": {}}], "self": "/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4", "min_disk": 0, "protected": false, "id": "9b3bf9df-8251-4594-aa33-2ab7563925d4", "file": "/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:14 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/actions/deactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-63b6cb45-0fe5-4773-a619-3ca58f04c0ec Date: - Thu, 25 Aug 2016 22:37:14 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:14 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 403 message: '' headers: Content-Length: - '95' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-13eaf375-476c-4f2b-804d-852f5eacc87f Date: - Thu, 25 Aug 2016 22:37:14 GMT Connection: - close body: encoding: UTF-8 string: "403 Forbidden\n\nThe requested image has been deactivated. Image data download is forbidden.\n\n " http_version: recorded_at: Thu, 25 Aug 2016 22:37:14 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/actions/reactivate body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-ca1014fc-9ad0-4f32-98df-9f57e05e5a62 Date: - Thu, 25 Aug 2016 22:37:14 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:14 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-4db98503-1b1b-45e1-8eac-f9028e6d8cca Date: - Thu, 25 Aug 2016 22:37:15 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 22:37:15 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/9b3bf9df-8251-4594-aa33-2ab7563925d4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-2cfb96bd-568c-453a-b13f-bb164be1d10f Date: - Thu, 25 Aug 2016 22:37:15 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:15 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar3a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '83' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-870ae7cb-8dba-41ef-a71c-b34b4300fc47 Date: - Thu, 25 Aug 2016 22:37:15 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar3a"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:15 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar3a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '83' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-fd69c7b0-a22f-40f1-9ada-1e6a74d542a3 Date: - Thu, 25 Aug 2016 22:37:16 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar3a"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:16 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_create_id.yml000066400000000000000000000213031476630434000267620ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar_id","id":"11111111-2222-3333-aaaa-bbbbbbcccce1"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '566' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1 X-Openstack-Request-Id: - req-14a4b35e-bd45-498d-8105-c9d29de04835 Date: - Fri, 26 Aug 2016 00:00:27 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_id", "tags": [], "container_format": null, "created_at": "2016-08-26T00:00:28Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:00:28Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce1", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:00:27 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar_id body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '650' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-6f5947b9-6584-4d89-a595-9328eff1a605 Date: - Fri, 26 Aug 2016 00:00:27 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [{"status": "queued", "name": "foobar_id", "tags": [], "container_format": null, "created_at": "2016-08-26T00:00:28Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:00:28Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce1", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_id"}' http_version: recorded_at: Fri, 26 Aug 2016 00:00:27 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '566' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-da0052d1-88f9-4a50-94a2-06f4ca1f4592 Date: - Fri, 26 Aug 2016 00:00:28 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_id", "tags": [], "container_format": null, "created_at": "2016-08-26T00:00:28Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:00:28Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce1", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:00:28 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-d4f3c75b-8b41-4843-8ca7-66dcb8229936 Date: - Fri, 26 Aug 2016 00:00:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Fri, 26 Aug 2016 00:00:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 404 message: '' headers: Content-Length: - '79' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-e791e22f-3835-40ce-83ea-b560e0d8cf9d Date: - Fri, 26 Aug 2016 00:00:28 GMT Connection: - close body: encoding: UTF-8 string: "404 Not Found\n\nNo image found with ID 11111111-2222-3333-aaaa-bbbbbbcccce1\n\n \ " http_version: recorded_at: Fri, 26 Aug 2016 00:00:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar_id body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '84' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-2801de26-7cc1-4682-a93d-d83b8cc6f2d1 Date: - Fri, 26 Aug 2016 00:00:29 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_id"}' http_version: recorded_at: Fri, 26 Aug 2016 00:00:29 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 404 message: '' headers: Content-Length: - '79' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-8a59a74b-2317-4604-8401-4b452c796dca Date: - Fri, 26 Aug 2016 00:00:29 GMT Connection: - close body: encoding: UTF-8 string: "404 Not Found\n\nNo image found with ID 11111111-2222-3333-aaaa-bbbbbbcccce1\n\n \ " http_version: recorded_at: Fri, 26 Aug 2016 00:00:29 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar_id body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '84' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-e33914cb-facf-4063-9f7a-2f3af21ee07a Date: - Fri, 26 Aug 2016 00:00:29 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_id"}' http_version: recorded_at: Fri, 26 Aug 2016 00:00:29 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_crud.yml000066400000000000000000000541161476630434000260100ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '563' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-3ff0af92-827c-4e9d-bf1b-da27d93e4acb Date: - Thu, 25 Aug 2016 17:09:02 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:00Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:09:00Z", "visibility": "private", "locations": [], "self": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497", "min_disk": 0, "protected": false, "id": "fe05659e-d433-4e09-aa78-19e0b7f5e497", "file": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:02 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497 body: encoding: UTF-8 string: '[{"op":"replace","path":"/name","value":"baz"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-902b13a9-f79e-4c62-8202-c7ab0fbacfe6 Date: - Thu, 25 Aug 2016 17:09:02 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:00Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:09:03Z", "visibility": "private", "locations": [], "self": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497", "min_disk": 0, "protected": false, "id": "fe05659e-d433-4e09-aa78-19e0b7f5e497", "file": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:02 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-1ffdc782-8737-44ab-8634-c7ce0071b604 Date: - Thu, 25 Aug 2016 17:09:02 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:00Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:09:03Z", "visibility": "private", "locations": [], "self": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497", "min_disk": 0, "protected": false, "id": "fe05659e-d433-4e09-aa78-19e0b7f5e497", "file": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:02 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-0b9d4d14-aa58-4200-af78-46162ef1d567 Date: - Thu, 25 Aug 2016 17:09:03 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:09:03 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b972a78c10cb40548ade394045d6bd17 response: status: code: 200 message: '' headers: Content-Length: - '563' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-d4be1bb1-6fc3-4c6a-9340-8fbdc6ec0eb3 Date: - Thu, 25 Aug 2016 17:30:24 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T17:30:23Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:30:23Z", "visibility": "private", "locations": [], "self": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "min_disk": 0, "protected": false, "id": "1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "file": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:24 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1 body: encoding: UTF-8 string: '[{"op":"replace","path":"/name","value":"baz"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - b972a78c10cb40548ade394045d6bd17 response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-7644d794-29d1-4dce-a874-e482124bb603 Date: - Thu, 25 Aug 2016 17:30:24 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T17:30:23Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:30:24Z", "visibility": "private", "locations": [], "self": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "min_disk": 0, "protected": false, "id": "1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "file": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:24 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b972a78c10cb40548ade394045d6bd17 response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-ad44420e-514e-4c4e-8e3f-3fc11de4bb0e Date: - Thu, 25 Aug 2016 17:30:24 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T17:30:23Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:30:24Z", "visibility": "private", "locations": [], "self": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "min_disk": 0, "protected": false, "id": "1c90af1c-365b-47b9-8663-7ecd3f92a1a1", "file": "/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:24 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/1c90af1c-365b-47b9-8663-7ecd3f92a1a1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b972a78c10cb40548ade394045d6bd17 response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-94eeff3d-7a88-4c1e-9729-97c74f2a30a1 Date: - Thu, 25 Aug 2016 17:30:25 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:25 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '5419' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-89306bfa-f0f6-4181-9655-e20cb3b91a18 Date: - Thu, 25 Aug 2016 22:37:32 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:32 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '563' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9 X-Openstack-Request-Id: - req-f4ee7ff0-1fee-4b62-b6aa-2b7c9435b748 Date: - Thu, 25 Aug 2016 22:37:32 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:33Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:32 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '644' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-17af363a-5825-4708-be44-3596f31765ca Date: - Thu, 25 Aug 2016 22:37:33 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:33Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:33 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '563' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-55b3e602-436b-4505-87a9-e17770d2d0c8 Date: - Thu, 25 Aug 2016 22:37:33 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:33Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:33 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9 body: encoding: UTF-8 string: '[{"op":"replace","path":"/name","value":"baz"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-e3a9e61b-b821-496e-92d1-0051b8f5fe4d Date: - Thu, 25 Aug 2016 22:37:33 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:34Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:33 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '560' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-9cb6f5f9-88bb-4aa6-88d2-9cb398a33bad Date: - Thu, 25 Aug 2016 22:37:33 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:34Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:33 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=baz body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '638' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-44a89a76-55f1-43b0-a969-403f4cf0f9f0 Date: - Thu, 25 Aug 2016 22:37:34 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [{"status": "queued", "name": "baz", "tags": [], "container_format": null, "created_at": "2016-08-25T22:37:33Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T22:37:34Z", "visibility": "private", "locations": [], "self": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9", "min_disk": 0, "protected": false, "id": "ae62eab7-322f-4500-9602-d0c19528a0c9", "file": "/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images?name=baz"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:34 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/ae62eab7-322f-4500-9602-d0c19528a0c9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-bc6230f3-7eab-4aaa-aa53-e1cbb7098e11 Date: - Thu, 25 Aug 2016 22:37:34 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:34 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '5419' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-7324e264-5100-4ded-a5b7-acefdb16ac72 Date: - Thu, 25 Aug 2016 22:37:34 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:34 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '5419' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-649df434-d093-4442-bece-589b8a069865 Date: - Thu, 25 Aug 2016 22:37:35 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:35 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_member_crudl.yml000066400000000000000000000304431476630434000275100ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar4"}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '517' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8 X-Openstack-Request-Id: - req-00363f17-37a0-4e21-a912-b56b19eb7342 Date: - Tue, 03 May 2016 14:01:02 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar4", "tags": [], "container_format": null, "created_at": "2016-05-03T14:01:02Z", "size": null, "disk_format": null, "updated_at": "2016-05-03T14:01:02Z", "visibility": "private", "self": "/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "min_disk": 0, "protected": false, "id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "file": "/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/file", "checksum": null, "owner": null, "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Tue, 03 May 2016 14:01:02 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '48' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-62e0b1aa-3e40-411a-af37-18dcf92dcadc Date: - Tue, 03 May 2016 14:01:02 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"members": [], "schema": "/v2/schemas/members"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members body: encoding: UTF-8 string: '{"member":"tenant1"}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '205' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-e7725087-bc77-4aca-bd6b-ca4af858d258 Date: - Tue, 03 May 2016 14:01:03 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"status": "pending", "created_at": "2016-05-03T14:01:03Z", "updated_at": "2016-05-03T14:01:03Z", "image_id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "member_id": "tenant1", "schema": "/v2/schemas/member"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '253' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-e1e6b7bc-7385-4712-b3c6-4b6760e99bbf Date: - Tue, 03 May 2016 14:01:03 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"members": [{"status": "pending", "created_at": "2016-05-03T14:01:03Z", "updated_at": "2016-05-03T14:01:03Z", "image_id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "member_id": "tenant1", "schema": "/v2/schemas/member"}], "schema": "/v2/schemas/members"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members/tenant1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '205' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-b1312d60-3def-453f-b0ac-2c549759bd32 Date: - Tue, 03 May 2016 14:01:03 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"status": "pending", "created_at": "2016-05-03T14:01:03Z", "updated_at": "2016-05-03T14:01:03Z", "image_id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "member_id": "tenant1", "schema": "/v2/schemas/member"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members/tenant1 body: encoding: UTF-8 string: '{"status":"accepted"}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '206' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-8e0b290d-dd7f-4868-90f3-8fe2ff9fc1fc Date: - Tue, 03 May 2016 14:01:03 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"status": "accepted", "created_at": "2016-05-03T14:01:03Z", "updated_at": "2016-05-03T14:01:03Z", "image_id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "member_id": "tenant1", "schema": "/v2/schemas/member"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members/tenant1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '206' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-fda3691e-0ce2-4575-b0a0-a6cad35a2a08 Date: - Tue, 03 May 2016 14:01:03 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"status": "accepted", "created_at": "2016-05-03T14:01:03Z", "updated_at": "2016-05-03T14:01:03Z", "image_id": "8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8", "member_id": "tenant1", "schema": "/v2/schemas/member"}' http_version: recorded_at: Tue, 03 May 2016 14:01:03 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members/tenant1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-bc9bba15-d39b-45f1-9cf5-2be4d5f3f7ab Date: - Tue, 03 May 2016 14:01:04 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:01:04 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8/members body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '48' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-3d3742ca-2d47-44ed-bdf3-094bd3cb8071 Date: - Tue, 03 May 2016 14:01:04 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"members": [], "schema": "/v2/schemas/members"}' http_version: recorded_at: Tue, 03 May 2016 14:01:04 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/8c8a3875-1bd5-4c0f-9f6a-1f1af15d23d8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-1ec213e3-7871-41e5-bf73-1f70add7bd6b Date: - Tue, 03 May 2016 14:01:04 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:01:04 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '82' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-a3738686-e187-4a9a-bd8e-f9d4976cf2d1 Date: - Tue, 03 May 2016 14:01:04 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar4"}' http_version: recorded_at: Tue, 03 May 2016 14:01:04 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '82' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-5bf9b228-d596-4d1e-8e26-daa274966fc6 Date: - Tue, 03 May 2016 14:01:04 GMT Proxy-Connection: - Keep-alive body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar4"}' http_version: recorded_at: Tue, 03 May 2016 14:01:04 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_reload.yml000066400000000000000000000354361476630434000263250ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"reloaded_image_original"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '606' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 X-Openstack-Request-Id: - req-10af6382-cc84-41d5-9825-9cc97311572b Date: - Thu, 25 Aug 2016 17:09:06 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_original", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:06Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:06 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '606' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-b4661869-efdc-4e44-9b23-1b80ea8c57fb Date: - Thu, 25 Aug 2016 17:09:06 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_original", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:06Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:06 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '606' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-45f7c85d-f388-4f04-bc8b-d0bacb5e441d Date: - Thu, 25 Aug 2016 17:09:06 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_original", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:06Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:06 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: UTF-8 string: '[{"op":"replace","path":"/name","value":"reloaded_image_updated"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '605' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-22b8800a-83c1-4b9c-9a6a-2c5a2c99638d Date: - Thu, 25 Aug 2016 17:09:06 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_updated", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:07Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:07 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '605' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-44feacdb-7029-4837-890f-36fb141bef8d Date: - Thu, 25 Aug 2016 17:09:07 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_updated", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:07Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:07 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '605' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-ba44c6b4-126d-4b76-9d1c-65334c4d8325 Date: - Thu, 25 Aug 2016 17:09:07 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_updated", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:07Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:07 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: UTF-8 string: '[{"op":"replace","path":"/name","value":"reloaded_image_updated_again"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '611' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-2c624ddc-e2ea-4294-b18d-ea2488bbb5b0 Date: - Thu, 25 Aug 2016 17:09:08 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_updated_again", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:08Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:08 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '611' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-26a87d3e-cbe2-471c-83d6-44b46e314dcb Date: - Thu, 25 Aug 2016 17:09:08 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "reloaded_image_updated_again", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:08Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:08 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=reloaded_image body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '700' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-83f0d5ff-890d-443e-a704-ab55155d7a63 Date: - Thu, 25 Aug 2016 17:09:09 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [{"status": "queued", "name": "reloaded_image", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:06Z", "size": null, "disk_format": null, "locations": [], "visibility": "private", "updated_at": "2016-08-25T17:09:08Z", "self": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "protected": false, "min_ram": 0, "file": "/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886/file", "checksum": null, "id": "bc3cfc5a-0c88-47b6-82c2-c6957c30d886", "min_disk": 0, "virtual_size": null, "reloadable_property": "updated_again", "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images?name=reloaded_image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:09 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/bc3cfc5a-0c88-47b6-82c2-c6957c30d886 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-eedf77a0-5c01-4cc4-b1d5-8caa246fc2ec Date: - Thu, 25 Aug 2016 17:09:09 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:09:10 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=reloaded_image body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '89' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-c49184de-9ea3-4c61-8ace-6632ff520fec Date: - Thu, 25 Aug 2016 17:09:10 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=reloaded_image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:10 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_save_id.yml000066400000000000000000000253141476630434000264630ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"original_name","id":"11111111-2222-3333-aaaa-bbbbbbcccce2","property_to_delete":"bar"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '599' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 X-Openstack-Request-Id: - req-f1e04a12-da92-4e45-bbe1-e69920de9da4 Date: - Fri, 26 Aug 2016 00:36:35 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "property_to_delete": "bar", "name": "original_name", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:35Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:35 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '599' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-1a94bfaf-41b3-4373-b1fe-1c729a3d7937 Date: - Fri, 26 Aug 2016 00:36:35 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "property_to_delete": "bar", "name": "original_name", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:35Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:35 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '599' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-b3de5526-6d35-4cf4-8626-67a905417e84 Date: - Fri, 26 Aug 2016 00:36:35 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "property_to_delete": "bar", "name": "original_name", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:35Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:35 GMT - request: method: patch uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: UTF-8 string: '[{"op":"remove","path":"/property_to_delete","value":null},{"op":"add","path":"/property_to_add","value":"bar"},{"op":"replace","path":"/name","value":"updated_name"},{"op":"replace","path":"/property_to_add","value":"bar"}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/openstack-images-v2.1-json-patch Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '595' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-604d4b5a-63e3-4e87-bbaa-be3487c80b5d Date: - Fri, 26 Aug 2016 00:36:35 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "updated_name", "property_to_add": "bar", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:36Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:36 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '595' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-241c2c01-ea23-411e-9000-87e0c3a36584 Date: - Fri, 26 Aug 2016 00:36:36 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "updated_name", "property_to_add": "bar", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:36Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:36 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '595' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-9bb9a41d-9bb7-42a0-afb2-aeb4ef91cee5 Date: - Fri, 26 Aug 2016 00:36:36 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "updated_name", "property_to_add": "bar", "tags": [], "container_format": null, "created_at": "2016-08-26T00:36:35Z", "size": null, "disk_format": null, "updated_at": "2016-08-26T00:36:36Z", "visibility": "private", "locations": [], "self": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2", "min_disk": 0, "protected": false, "id": "11111111-2222-3333-aaaa-bbbbbbcccce2", "file": "/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Fri, 26 Aug 2016 00:36:36 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-80b2da40-db23-4f5c-ad25-a894a1fb7355 Date: - Fri, 26 Aug 2016 00:36:37 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Fri, 26 Aug 2016 00:36:37 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 404 message: '' headers: Content-Length: - '79' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-28577b1e-64c3-463c-b9eb-540fb24ce017 Date: - Fri, 26 Aug 2016 00:36:37 GMT Connection: - close body: encoding: UTF-8 string: "404 Not Found\n\nNo image found with ID 11111111-2222-3333-aaaa-bbbbbbcccce2\n\n \ " http_version: recorded_at: Fri, 26 Aug 2016 00:36:37 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_tags.yml000066400000000000000000001165341476630434000260140ustar00rootroot00000000000000--- http_interactions: - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b5ffdf50-ff06-4dfa-8434-f3bb11e12457 Date: - Thu, 25 Aug 2016 17:08:27 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:27 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-0c6d55c0-8e23-41d0-a653-0267112bf605 Date: - Thu, 25 Aug 2016 17:08:27 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag1"], "container_format": "ovf", "created_at": "2016-08-25T17:08:27Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:28Z", "visibility": "private", "locations": [], "self": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8", "min_disk": 0, "protected": false, "id": "3d296ddc-7982-4334-9ecb-cd079c908ce8", "file": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:27 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-5d1d0dc6-c130-45d7-8755-450333e5ada7 Date: - Thu, 25 Aug 2016 17:08:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:28 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-2a9270b0-5a42-460b-abd7-07bf9872eded Date: - Thu, 25 Aug 2016 17:08:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:28 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-1ee77e06-e52b-4a41-b9f5-b0faf3f99ec1 Date: - Thu, 25 Aug 2016 17:08:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '597' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-8a181d27-62e7-4970-9ece-92e2f0583596 Date: - Thu, 25 Aug 2016 17:08:29 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag2", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T17:08:27Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:29Z", "visibility": "private", "locations": [], "self": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8", "min_disk": 0, "protected": false, "id": "3d296ddc-7982-4334-9ecb-cd079c908ce8", "file": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:29 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-3fdc4efd-7f2e-45cc-922c-e05d2392a4b8 Date: - Thu, 25 Aug 2016 17:08:29 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:29 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '589' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-a42f5a77-0bb7-4706-9470-980ae52cf1d2 Date: - Thu, 25 Aug 2016 17:08:29 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T17:08:27Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:29Z", "visibility": "private", "locations": [], "self": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8", "min_disk": 0, "protected": false, "id": "3d296ddc-7982-4334-9ecb-cd079c908ce8", "file": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:29 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-c7f10b8b-9f58-4971-b344-9d040cefe87b Date: - Thu, 25 Aug 2016 17:08:29 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:29 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-6826e013-9f2f-4e77-b0ee-3a63b0f37eb6 Date: - Thu, 25 Aug 2016 17:08:30 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:30 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-72da8366-3831-4575-8a6f-c1d65b1e09ef Date: - Thu, 25 Aug 2016 17:08:30 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4"], "container_format": "ovf", "created_at": "2016-08-25T17:08:27Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:30Z", "visibility": "private", "locations": [], "self": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8", "min_disk": 0, "protected": false, "id": "3d296ddc-7982-4334-9ecb-cd079c908ce8", "file": "/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:30 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/3d296ddc-7982-4334-9ecb-cd079c908ce8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b7f6c5d4-1dd6-4225-af00-df8a1fcf3e12 Date: - Thu, 25 Aug 2016 17:08:31 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:31 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b0565f3a-66e9-4549-88e7-0d2064997424 Date: - Thu, 25 Aug 2016 17:30:13 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:13 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-6acfea38-8dd6-41b8-9b06-433bae1da94b Date: - Thu, 25 Aug 2016 17:30:14 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag1"], "container_format": "ovf", "created_at": "2016-08-25T17:30:14Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:14Z", "visibility": "private", "locations": [], "self": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6", "min_disk": 0, "protected": false, "id": "f155c047-49e7-470d-9e41-0e0bf76855c6", "file": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:14 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4dc44af8-07a5-40a1-9bad-2835da57bbdc Date: - Thu, 25 Aug 2016 17:30:14 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:14 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4c5c1ddb-0e8f-439b-9515-875503fa88a3 Date: - Thu, 25 Aug 2016 17:30:15 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:15 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-d73e1950-07da-4ddd-8384-42c92eb7672c Date: - Thu, 25 Aug 2016 17:30:15 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:15 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 200 message: '' headers: Content-Length: - '597' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-6342c2ab-b58e-4ecb-948f-f1f4147c71d8 Date: - Thu, 25 Aug 2016 17:30:15 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag2", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T17:30:14Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:15Z", "visibility": "private", "locations": [], "self": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6", "min_disk": 0, "protected": false, "id": "f155c047-49e7-470d-9e41-0e0bf76855c6", "file": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:15 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-3c9971cb-90b8-4a66-add4-0677178c3e63 Date: - Thu, 25 Aug 2016 17:30:15 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:15 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 200 message: '' headers: Content-Length: - '589' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-06a74b60-f400-4221-819e-3014239a0ed0 Date: - Thu, 25 Aug 2016 17:30:16 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T17:30:14Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:16Z", "visibility": "private", "locations": [], "self": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6", "min_disk": 0, "protected": false, "id": "f155c047-49e7-470d-9e41-0e0bf76855c6", "file": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:16 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-e6fa8879-a563-421f-94c6-5591caefd554 Date: - Thu, 25 Aug 2016 17:30:16 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:16 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b85302aa-811c-46ff-87fe-1348209e1d0f Date: - Thu, 25 Aug 2016 17:30:16 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:16 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-b47c3cfb-564d-4dc9-b362-b2a11c936971 Date: - Thu, 25 Aug 2016 17:30:16 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4"], "container_format": "ovf", "created_at": "2016-08-25T17:30:14Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:17Z", "visibility": "private", "locations": [], "self": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6", "min_disk": 0, "protected": false, "id": "f155c047-49e7-470d-9e41-0e0bf76855c6", "file": "/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:16 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/f155c047-49e7-470d-9e41-0e0bf76855c6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - b013555d4b904f16accfb3d79f40c8dc response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-6f6405fb-60c8-484f-ab2b-1f3f2d7a2dfb Date: - Thu, 25 Aug 2016 17:30:17 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:17 GMT - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar3","container_format":"ovf","disk_format":"vmdk"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '567' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 X-Openstack-Request-Id: - req-a5a9b776-3839-4b59-966a-7a40b9826cc7 Date: - Thu, 25 Aug 2016 22:37:24 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:25Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:25Z", "visibility": "private", "locations": [], "self": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8", "min_disk": 0, "protected": false, "id": "545b8636-361c-4be9-9801-a53c780ffea8", "file": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:24 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-9ef727f1-297e-4500-8557-ad5e71f65728 Date: - Thu, 25 Aug 2016 22:37:25 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:25 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-cb32bd26-66e7-4804-8358-4a35e741157d Date: - Thu, 25 Aug 2016 22:37:25 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag1"], "container_format": "ovf", "created_at": "2016-08-25T22:37:25Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:25Z", "visibility": "private", "locations": [], "self": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8", "min_disk": 0, "protected": false, "id": "545b8636-361c-4be9-9801-a53c780ffea8", "file": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:25 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-e6fcd651-c007-4f6e-ba0e-6fa21c92ff39 Date: - Thu, 25 Aug 2016 22:37:25 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:25 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4c7d37b1-47e7-4523-835e-77c7a458a10d Date: - Thu, 25 Aug 2016 22:37:26 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:26 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag4 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-0900af42-814f-48b4-830f-101c5d0b8a67 Date: - Thu, 25 Aug 2016 22:37:26 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:26 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '597' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-ae51758c-f285-4e86-b06d-ff0943f0e927 Date: - Thu, 25 Aug 2016 22:37:26 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag2", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T22:37:25Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:27Z", "visibility": "private", "locations": [], "self": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8", "min_disk": 0, "protected": false, "id": "545b8636-361c-4be9-9801-a53c780ffea8", "file": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:26 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-a1eaa9dc-f88a-425b-8822-d64de54237e2 Date: - Thu, 25 Aug 2016 22:37:27 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:27 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '589' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-06982849-72c2-471d-b956-c8dcefb20245 Date: - Thu, 25 Aug 2016 22:37:27 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4", "tag1", "tag3"], "container_format": "ovf", "created_at": "2016-08-25T22:37:25Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:27Z", "visibility": "private", "locations": [], "self": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8", "min_disk": 0, "protected": false, "id": "545b8636-361c-4be9-9801-a53c780ffea8", "file": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:27 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-ecff3721-51ff-4728-ac7e-a4efd881116d Date: - Thu, 25 Aug 2016 22:37:27 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:27 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/tags/tag3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-69fa35b0-3c89-4519-bb71-b0081bafbed5 Date: - Thu, 25 Aug 2016 22:37:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '573' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-0e8f407b-8d13-450d-8d02-96a210c0ae68 Date: - Thu, 25 Aug 2016 22:37:28 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar3", "tags": ["tag4"], "container_format": "ovf", "created_at": "2016-08-25T22:37:25Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:28Z", "visibility": "private", "locations": [], "self": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8", "min_disk": 0, "protected": false, "id": "545b8636-361c-4be9-9801-a53c780ffea8", "file": "/v2/images/545b8636-361c-4be9-9801-a53c780ffea8/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:28 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/545b8636-361c-4be9-9801-a53c780ffea8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4d69750c-3074-4484-bece-d2800557fd70 Date: - Thu, 25 Aug 2016 22:37:28 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '82' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-679f49f9-5bbf-4997-a8eb-28ebbe03c005 Date: - Thu, 25 Aug 2016 22:37:28 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar3"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:28 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar3 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '82' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-01cd7b90-71cf-450c-8eb6-d892e5297721 Date: - Thu, 25 Aug 2016 22:37:29 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar3"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:29 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/image_v2_upload_download.yml000066400000000000000000030007431476630434000302260ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar_up1","container_format":"ovf","disk_format":"vmdk"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 201 message: '' headers: Content-Length: - '570' Content-Type: - application/json; charset=UTF-8 Location: - http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 X-Openstack-Request-Id: - req-454c130c-d891-42b9-a7bb-91378b0a2623 Date: - Thu, 25 Aug 2016 17:08:45 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:46Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:46Z", "visibility": "private", "locations": [], "self": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864", "min_disk": 0, "protected": false, "id": "bb225b03-8e39-43b6-9485-07625e035864", "file": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:45 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '570' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-8e224df4-fdba-4628-8125-d79e2a2bb3a2 Date: - Thu, 25 Aug 2016 17:08:46 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:46Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:46Z", "visibility": "private", "locations": [], "self": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864", "min_disk": 0, "protected": false, "id": "bb225b03-8e39-43b6-9485-07625e035864", "file": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:46 GMT - request: method: put uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-0ae45e5d-9832-430c-b53d-fdea39261d85 Date: - Thu, 25 Aug 2016 17:08:48 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:48 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-3c5192dd-a859-43ff-90d0-945b3207ff12 Date: - Thu, 25 Aug 2016 17:08:49 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:46Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:48Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/bb225b03-8e39-43b6-9485-07625e035864", "metadata": {}}], "self": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864", "min_disk": 0, "protected": false, "id": "bb225b03-8e39-43b6-9485-07625e035864", "file": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:49 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-973f956b-699f-491c-a53b-01aa245b0b8a Date: - Thu, 25 Aug 2016 17:08:49 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:46Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:48Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/bb225b03-8e39-43b6-9485-07625e035864", "metadata": {}}], "self": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864", "min_disk": 0, "protected": false, "id": "bb225b03-8e39-43b6-9485-07625e035864", "file": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:49 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-d77dfced-4da9-4e9f-a38e-614babd4c87b Date: - Thu, 25 Aug 2016 17:08:49 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:08:46Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:08:48Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/bb225b03-8e39-43b6-9485-07625e035864", "metadata": {}}], "self": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864", "min_disk": 0, "protected": false, "id": "bb225b03-8e39-43b6-9485-07625e035864", "file": "/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:49 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-beeaaad5-02bf-4add-8ccb-946402ca8be5 Date: - Thu, 25 Aug 2016 17:08:50 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 17:08:50 GMT - request: method: delete uri: http://devstack.openstack.stack:9292/v2/images/bb225b03-8e39-43b6-9485-07625e035864 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4f3e5fde-224f-4ab5-bc87-7e4aed6207e0 Date: - Thu, 25 Aug 2016 17:08:50 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:08:50 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar_up1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '85' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-9da904e5-7ad0-4ce8-8a88-f856682f17c4 Date: - Thu, 25 Aug 2016 17:08:51 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_up1"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:51 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images?name=foobar_up1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '85' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-f72e56ef-34c5-445c-b9f5-6fb1ed5b087f Date: - Thu, 25 Aug 2016 17:08:51 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_up1"}' http_version: recorded_at: Thu, 25 Aug 2016 17:08:51 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 200 message: '' headers: Content-Length: - '570' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-cd9d2982-cdb4-4f2e-b3f8-08668f67b4b6 Date: - Thu, 25 Aug 2016 17:30:33 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:30:33Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:33Z", "visibility": "private", "locations": [], "self": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "min_disk": 0, "protected": false, "id": "f3d75dac-5af7-4288-8794-edbb96181ca0", "file": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:33 GMT - request: method: put uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-82084d32-7cce-4b2f-b70f-70e5026a4edb Date: - Thu, 25 Aug 2016 17:30:34 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:34 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-d7c28a2a-8630-40ef-b514-e6bbe9864c18 Date: - Thu, 25 Aug 2016 17:30:34 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:30:33Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:34Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "metadata": {}}], "self": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "min_disk": 0, "protected": false, "id": "f3d75dac-5af7-4288-8794-edbb96181ca0", "file": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:34 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-d13d7c4c-d0d0-45d1-ba32-980cf07f50d3 Date: - Thu, 25 Aug 2016 17:30:34 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:30:33Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:34Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "metadata": {}}], "self": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "min_disk": 0, "protected": false, "id": "f3d75dac-5af7-4288-8794-edbb96181ca0", "file": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:34 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-5cdf37c7-237a-4052-a59b-0c3f1bbc6fc2 Date: - Thu, 25 Aug 2016 17:30:35 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T17:30:33Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T17:30:34Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "metadata": {}}], "self": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0", "min_disk": 0, "protected": false, "id": "f3d75dac-5af7-4288-8794-edbb96181ca0", "file": "/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:30:35 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-930e94ee-b2b2-4330-922c-4415b5b33823 Date: - Thu, 25 Aug 2016 17:30:35 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 17:30:35 GMT - request: method: delete uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/f3d75dac-5af7-4288-8794-edbb96181ca0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 78b67ed8741c45e194951ea6e65518b2 response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-6eea5cb8-1d72-40ff-9ff8-d390040101b0 Date: - Thu, 25 Aug 2016 17:30:35 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 17:30:35 GMT - request: method: post uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images body: encoding: UTF-8 string: '{"name":"foobar_up1","container_format":"ovf","disk_format":"vmdk"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 201 message: '' headers: Content-Length: - '570' Content-Type: - application/json; charset=UTF-8 Location: - https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 X-Openstack-Request-Id: - req-d60b7060-8d97-4c4d-b1e0-41b9d217912c Date: - Thu, 25 Aug 2016 22:37:09 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:10Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:10Z", "visibility": "private", "locations": [], "self": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "min_disk": 0, "protected": false, "id": "4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "file": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:09 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '570' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-45bc3a4d-a825-45b8-9fcd-71b021babe4d Date: - Thu, 25 Aug 2016 22:37:09 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:10Z", "size": null, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:10Z", "visibility": "private", "locations": [], "self": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "min_disk": 0, "protected": false, "id": "4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "file": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:09 GMT - request: method: put uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/octet-stream Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-1fa4dcdd-0f29-4ce5-b48a-681f73de5d50 Date: - Thu, 25 Aug 2016 22:37:10 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:10 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-01c7fe05-c06f-461a-8add-fe899532441e Date: - Thu, 25 Aug 2016 22:37:10 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:10Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:10Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "metadata": {}}], "self": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "min_disk": 0, "protected": false, "id": "4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "file": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:10 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-f6fd1cf6-a9fc-4915-bbb3-3b7fd500d104 Date: - Thu, 25 Aug 2016 22:37:10 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:10Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:10Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "metadata": {}}], "self": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "min_disk": 0, "protected": false, "id": "4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "file": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:10 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '701' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-f107d1e6-96a1-4b3e-897d-b8f2dcc704d9 Date: - Thu, 25 Aug 2016 22:37:11 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "active", "name": "foobar_up1", "tags": [], "container_format": "ovf", "created_at": "2016-08-25T22:37:10Z", "size": 81920, "disk_format": "vmdk", "updated_at": "2016-08-25T22:37:10Z", "visibility": "private", "locations": [{"url": "file:///opt/stack/data/glance/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "metadata": {}}], "self": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "min_disk": 0, "protected": false, "id": "4de8e8d6-f824-4c0d-b56c-66bf05fb60c7", "file": "/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file", "checksum": "5ed761afc09ea10ec0117e5008e038f0", "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:11 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7/file body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Type: - application/octet-stream Content-Length: - '81920' Content-Md5: - 5ed761afc09ea10ec0117e5008e038f0 X-Openstack-Request-Id: - req-cd37eeac-d681-4f33-a7c3-eb277423a449 Date: - Thu, 25 Aug 2016 22:37:11 GMT Connection: - close body: encoding: ASCII-8BIT string: !binary |- bWluaW1hbC5vdmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDI2NjM0 ADEyNTc0MDQ0MjQ3ADAwMTMwNzYAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNvbWVv bmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEVudmVs b3BlIG92Zjp2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJlbi1VUyIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8xIiB4bWxu czpvdmY9Imh0dHA6Ly9zY2hlbWFzLmRtdGYub3JnL292Zi9lbnZlbG9wZS8x IiB4bWxuczpyYXNkPSJodHRwOi8vc2NoZW1hcy5kbXRmLm9yZy93YmVtL3dz Y2ltLzEvY2ltLXNjaGVtYS8yL0NJTV9SZXNvdXJjZUFsbG9jYXRpb25TZXR0 aW5nRGF0YSIgeG1sbnM6dnNzZD0iaHR0cDovL3NjaGVtYXMuZG10Zi5vcmcv d2JlbS93c2NpbS8xL2NpbS1zY2hlbWEvMi9DSU1fVmlydHVhbFN5c3RlbVNl dHRpbmdEYXRhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp2Ym94PSJodHRwOi8vd3d3LnZp cnR1YWxib3gub3JnL292Zi9tYWNoaW5lIj4KICA8UmVmZXJlbmNlcz4KICAg IDxGaWxlIG92ZjpocmVmPSJtaW5pbWFsLWRpc2sxLnZtZGsiIG92ZjppZD0i ZmlsZTEiLz4KICA8L1JlZmVyZW5jZXM+CiAgPERpc2tTZWN0aW9uPgogICAg PEluZm8+TGlzdCBvZiB0aGUgdmlydHVhbCBkaXNrcyB1c2VkIGluIHRoZSBw YWNrYWdlPC9JbmZvPgogICAgPERpc2sgb3ZmOmNhcGFjaXR5PSI0MTk0MzA0 IiBvdmY6ZGlza0lkPSJ2bWRpc2sxIiBvdmY6ZmlsZVJlZj0iZmlsZTEiIG92 Zjpmb3JtYXQ9Imh0dHA6Ly93d3cudm13YXJlLmNvbS9pbnRlcmZhY2VzL3Nw ZWNpZmljYXRpb25zL3ZtZGsuaHRtbCNzdHJlYW1PcHRpbWl6ZWQiIHZib3g6 dXVpZD0iYjE1MzU0YjgtZTQ1ZS00MDNiLTlhMjktODIwYzUzODgxMDQxIi8+ CiAgPC9EaXNrU2VjdGlvbj4KICA8TmV0d29ya1NlY3Rpb24+CiAgICA8SW5m bz5Mb2dpY2FsIG5ldHdvcmtzIHVzZWQgaW4gdGhlIHBhY2thZ2U8L0luZm8+ CiAgICA8TmV0d29yayBvdmY6bmFtZT0iTkFUIj4KICAgICAgPERlc2NyaXB0 aW9uPkxvZ2ljYWwgbmV0d29yayB1c2VkIGJ5IHRoaXMgYXBwbGlhbmNlLjwv RGVzY3JpcHRpb24+CiAgICA8L05ldHdvcms+CiAgPC9OZXR3b3JrU2VjdGlv bj4KICA8VmlydHVhbFN5c3RlbSBvdmY6aWQ9Im1pbmltYWwiPgogICAgPElu Zm8+QSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+CiAgICA8T3BlcmF0aW5nU3lz dGVtU2VjdGlvbiBvdmY6aWQ9IjAiPgogICAgICA8SW5mbz5UaGUga2luZCBv ZiBpbnN0YWxsZWQgZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbTwvSW5mbz4KICAg ICAgPERlc2NyaXB0aW9uPk90aGVyPC9EZXNjcmlwdGlvbj4KICAgICAgPHZi b3g6T1NUeXBlIG92ZjpyZXF1aXJlZD0iZmFsc2UiPk90aGVyPC92Ym94Ok9T VHlwZT4KICAgIDwvT3BlcmF0aW5nU3lzdGVtU2VjdGlvbj4KICAgIDxWaXJ0 dWFsSGFyZHdhcmVTZWN0aW9uPgogICAgICA8SW5mbz5WaXJ0dWFsIGhhcmR3 YXJlIHJlcXVpcmVtZW50cyBmb3IgYSB2aXJ0dWFsIG1hY2hpbmU8L0luZm8+ CiAgICAgIDxTeXN0ZW0+CiAgICAgICAgPHZzc2Q6RWxlbWVudE5hbWU+Vmly dHVhbCBIYXJkd2FyZSBGYW1pbHk8L3Zzc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHZzc2Q6SW5zdGFuY2VJRD4wPC92c3NkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHZzc2Q6VmlydHVhbFN5c3RlbUlkZW50aWZpZXI+bWluaW1hbDwvdnNz ZDpWaXJ0dWFsU3lzdGVtSWRlbnRpZmllcj4KICAgICAgICA8dnNzZDpWaXJ0 dWFsU3lzdGVtVHlwZT52aXJ0dWFsYm94LTIuMjwvdnNzZDpWaXJ0dWFsU3lz dGVtVHlwZT4KICAgICAgPC9TeXN0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkNhcHRpb24+MSB2aXJ0dWFsIENQVTwvcmFzZDpDYXB0aW9uPgog ICAgICAgIDxyYXNkOkRlc2NyaXB0aW9uPk51bWJlciBvZiB2aXJ0dWFsIENQ VXM8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVudE5h bWU+MSB2aXJ0dWFsIENQVTwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8 cmFzZDpJbnN0YW5jZUlEPjE8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8 cmFzZDpSZXNvdXJjZVR5cGU+MzwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAg ICAgPHJhc2Q6VmlydHVhbFF1YW50aXR5PjE8L3Jhc2Q6VmlydHVhbFF1YW50 aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxyYXNk OkFsbG9jYXRpb25Vbml0cz5NZWdhQnl0ZXM8L3Jhc2Q6QWxsb2NhdGlvblVu aXRzPgogICAgICAgIDxyYXNkOkNhcHRpb24+NjQgTUIgb2YgbWVtb3J5PC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3JpcHRpb24+TWVtb3J5 IFNpemU8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJhc2Q6RWxlbWVu dE5hbWU+NjQgTUIgb2YgbWVtb3J5PC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+MjwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlVHlwZT40PC9yYXNkOlJlc291cmNlVHlwZT4K ICAgICAgICA8cmFzZDpWaXJ0dWFsUXVhbnRpdHk+NjQ8L3Jhc2Q6VmlydHVh bFF1YW50aXR5PgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAg IDxyYXNkOkFkZHJlc3M+MDwvcmFzZDpBZGRyZXNzPgogICAgICAgIDxyYXNk OkNhcHRpb24+aWRlQ29udHJvbGxlcjA8L3Jhc2Q6Q2FwdGlvbj4KICAgICAg ICA8cmFzZDpEZXNjcmlwdGlvbj5JREUgQ29udHJvbGxlcjwvcmFzZDpEZXNj cmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5pZGVDb250cm9s bGVyMDwvcmFzZDpFbGVtZW50TmFtZT4KICAgICAgICA8cmFzZDpJbnN0YW5j ZUlEPjM8L3Jhc2Q6SW5zdGFuY2VJRD4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVN1YlR5cGU+UElJWDQ8L3Jhc2Q6UmVzb3VyY2VTdWJUeXBlPgogICAgICAg IDxyYXNkOlJlc291cmNlVHlwZT41PC9yYXNkOlJlc291cmNlVHlwZT4KICAg ICAgPC9JdGVtPgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNz PjE8L3Jhc2Q6QWRkcmVzcz4KICAgICAgICA8cmFzZDpDYXB0aW9uPmlkZUNv bnRyb2xsZXIxPC9yYXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6RGVzY3Jp cHRpb24+SURFIENvbnRyb2xsZXI8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAg ICAgPHJhc2Q6RWxlbWVudE5hbWU+aWRlQ29udHJvbGxlcjE8L3Jhc2Q6RWxl bWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD40PC9yYXNkOklu c3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VTdWJUeXBlPlBJSVg0 PC9yYXNkOlJlc291cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJj ZVR5cGU+NTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwvSXRlbT4KICAg ICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QWRkcmVzcz4wPC9yYXNkOkFkZHJl c3M+CiAgICAgICAgPHJhc2Q6Q2FwdGlvbj51c2I8L3Jhc2Q6Q2FwdGlvbj4K ICAgICAgICA8cmFzZDpEZXNjcmlwdGlvbj5VU0IgQ29udHJvbGxlcjwvcmFz ZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT51c2I8 L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAgICAgPHJhc2Q6SW5zdGFuY2VJRD41 PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAgICAgPHJhc2Q6UmVzb3VyY2VUeXBl PjIzPC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVtPgogICAgICA8 SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+MzwvcmFzZDpB ZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxsb2Nh dGlvbj5mYWxzZTwvcmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPgogICAgICAg IDxyYXNkOkNhcHRpb24+c291bmQ8L3Jhc2Q6Q2FwdGlvbj4KICAgICAgICA8 cmFzZDpEZXNjcmlwdGlvbj5Tb3VuZCBDYXJkPC9yYXNkOkRlc2NyaXB0aW9u PgogICAgICAgIDxyYXNkOkVsZW1lbnROYW1lPnNvdW5kPC9yYXNkOkVsZW1l bnROYW1lPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NjwvcmFzZDpJbnN0 YW5jZUlEPgogICAgICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5lbnNvbmlx MTM3MTwvcmFzZDpSZXNvdXJjZVN1YlR5cGU+CiAgICAgICAgPHJhc2Q6UmVz b3VyY2VUeXBlPjM1PC9yYXNkOlJlc291cmNlVHlwZT4KICAgICAgPC9JdGVt PgogICAgICA8SXRlbT4KICAgICAgICA8cmFzZDpBZGRyZXNzT25QYXJlbnQ+ MDwvcmFzZDpBZGRyZXNzT25QYXJlbnQ+CiAgICAgICAgPHJhc2Q6Q2FwdGlv bj5kaXNrMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0 aW9uPkRpc2sgSW1hZ2U8L3Jhc2Q6RGVzY3JpcHRpb24+CiAgICAgICAgPHJh c2Q6RWxlbWVudE5hbWU+ZGlzazE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SG9zdFJlc291cmNlPi9kaXNrL3ZtZGlzazE8L3Jhc2Q6SG9z dFJlc291cmNlPgogICAgICAgIDxyYXNkOkluc3RhbmNlSUQ+NzwvcmFzZDpJ bnN0YW5jZUlEPgogICAgICAgIDxyYXNkOlBhcmVudD4zPC9yYXNkOlBhcmVu dD4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTc8L3Jhc2Q6UmVzb3Vy Y2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICAgIDxJdGVtPgogICAgICAgIDxy YXNkOkFkZHJlc3NPblBhcmVudD4wPC9yYXNkOkFkZHJlc3NPblBhcmVudD4K ICAgICAgICA8cmFzZDpBdXRvbWF0aWNBbGxvY2F0aW9uPnRydWU8L3Jhc2Q6 QXV0b21hdGljQWxsb2NhdGlvbj4KICAgICAgICA8cmFzZDpDYXB0aW9uPmNk cm9tMTwvcmFzZDpDYXB0aW9uPgogICAgICAgIDxyYXNkOkRlc2NyaXB0aW9u PkNELVJPTSBEcml2ZTwvcmFzZDpEZXNjcmlwdGlvbj4KICAgICAgICA8cmFz ZDpFbGVtZW50TmFtZT5jZHJvbTE8L3Jhc2Q6RWxlbWVudE5hbWU+CiAgICAg ICAgPHJhc2Q6SW5zdGFuY2VJRD44PC9yYXNkOkluc3RhbmNlSUQ+CiAgICAg ICAgPHJhc2Q6UGFyZW50PjQ8L3Jhc2Q6UGFyZW50PgogICAgICAgIDxyYXNk OlJlc291cmNlVHlwZT4xNTwvcmFzZDpSZXNvdXJjZVR5cGU+CiAgICAgIDwv SXRlbT4KICAgICAgPEl0ZW0+CiAgICAgICAgPHJhc2Q6QXV0b21hdGljQWxs b2NhdGlvbj50cnVlPC9yYXNkOkF1dG9tYXRpY0FsbG9jYXRpb24+CiAgICAg ICAgPHJhc2Q6Q2FwdGlvbj5FdGhlcm5ldCBhZGFwdGVyIG9uICdOQVQnPC9y YXNkOkNhcHRpb24+CiAgICAgICAgPHJhc2Q6Q29ubmVjdGlvbj5OQVQ8L3Jh c2Q6Q29ubmVjdGlvbj4KICAgICAgICA8cmFzZDpFbGVtZW50TmFtZT5FdGhl cm5ldCBhZGFwdGVyIG9uICdOQVQnPC9yYXNkOkVsZW1lbnROYW1lPgogICAg ICAgIDxyYXNkOkluc3RhbmNlSUQ+OTwvcmFzZDpJbnN0YW5jZUlEPgogICAg ICAgIDxyYXNkOlJlc291cmNlU3ViVHlwZT5QQ05ldDMyPC9yYXNkOlJlc291 cmNlU3ViVHlwZT4KICAgICAgICA8cmFzZDpSZXNvdXJjZVR5cGU+MTA8L3Jh c2Q6UmVzb3VyY2VUeXBlPgogICAgICA8L0l0ZW0+CiAgICA8L1ZpcnR1YWxI YXJkd2FyZVNlY3Rpb24+CiAgICA8dmJveDpNYWNoaW5lIG92ZjpyZXF1aXJl ZD0iZmFsc2UiIHZlcnNpb249IjEuMTItd2luZG93cyIgdXVpZD0ie2ZiZWVk N2U5LWJkYzMtNDZlNy1iODM2LTNiMGVjYTM4ZjhjOH0iIG5hbWU9Im1pbmlt YWwiIE9TVHlwZT0iT3RoZXIiIHNuYXBzaG90Rm9sZGVyPSJTbmFwc2hvdHMi IGxhc3RTdGF0ZUNoYW5nZT0iMjAxNS0wOS0wOVQxNDo1NjoxNloiPgogICAg ICA8b3ZmOkluZm8+Q29tcGxldGUgVmlydHVhbEJveCBtYWNoaW5lIGNvbmZp Z3VyYXRpb24gaW4gVmlydHVhbEJveCBmb3JtYXQ8L292ZjpJbmZvPgogICAg ICA8RXh0cmFEYXRhPgogICAgICAgIDxFeHRyYURhdGFJdGVtIG5hbWU9IkdV SS9GaXJzdFJ1biIgdmFsdWU9InllcyIvPgogICAgICA8L0V4dHJhRGF0YT4K ICAgICAgPEhhcmR3YXJlIHZlcnNpb249IjIiPgogICAgICAgIDxDUFUgY291 bnQ9IjEiIGhvdHBsdWc9ImZhbHNlIj4KICAgICAgICAgIDxIYXJkd2FyZVZp cnRFeCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhOZXN0ZWRQYWdpbmcgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAgPEhh cmR3YXJlVmlydEV4VlBJRCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 SGFyZHdhcmVWaXJ0RXhVWCBlbmFibGVkPSJ0cnVlIi8+CiAgICAgICAgICA8 UEFFIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgICA8SGFyZHdhcmVWaXJ0 RXhMYXJnZVBhZ2VzIGVuYWJsZWQ9InRydWUiLz4KICAgICAgICAgIDxIYXJk d2FyZVZpcnRGb3JjZSBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgIDwvQ1BV PgogICAgICAgIDxNZW1vcnkgUkFNU2l6ZT0iNjQiIFBhZ2VGdXNpb249ImZh bHNlIi8+CiAgICAgICAgPEhJRCBQb2ludGluZz0iUFMyTW91c2UiIEtleWJv YXJkPSJQUzJLZXlib2FyZCIvPgogICAgICAgIDxIUEVUIGVuYWJsZWQ9ImZh bHNlIi8+CiAgICAgICAgPENoaXBzZXQgdHlwZT0iUElJWDMiLz4KICAgICAg ICA8Qm9vdD4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMSIgZGV2aWNl PSJGbG9wcHkiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMiIgZGV2 aWNlPSJEVkQiLz4KICAgICAgICAgIDxPcmRlciBwb3NpdGlvbj0iMyIgZGV2 aWNlPSJIYXJkRGlzayIvPgogICAgICAgICAgPE9yZGVyIHBvc2l0aW9uPSI0 IiBkZXZpY2U9Ik5vbmUiLz4KICAgICAgICA8L0Jvb3Q+CiAgICAgICAgPERp c3BsYXkgVlJBTVNpemU9IjE3IiBtb25pdG9yQ291bnQ9IjEiIGFjY2VsZXJh dGUzRD0iZmFsc2UiIGFjY2VsZXJhdGUyRFZpZGVvPSJmYWxzZSIvPgogICAg ICAgIDxWaWRlb0NhcHR1cmUvPgogICAgICAgIDxSZW1vdGVEaXNwbGF5IGVu YWJsZWQ9ImZhbHNlIiBhdXRoVHlwZT0iTnVsbCIvPgogICAgICAgIDxCSU9T PgogICAgICAgICAgPEFDUEkgZW5hYmxlZD0idHJ1ZSIvPgogICAgICAgICAg PElPQVBJQyBlbmFibGVkPSJmYWxzZSIvPgogICAgICAgICAgPExvZ28gZmFk ZUluPSJ0cnVlIiBmYWRlT3V0PSJ0cnVlIiBkaXNwbGF5VGltZT0iMCIvPgog ICAgICAgICAgPEJvb3RNZW51IG1vZGU9Ik1lc3NhZ2VBbmRNZW51Ii8+CiAg ICAgICAgICA8VGltZU9mZnNldCB2YWx1ZT0iMCIvPgogICAgICAgICAgPFBY RURlYnVnIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAgICAgPC9CSU9TPgogICAg ICAgIDxVU0JDb250cm9sbGVyIGVuYWJsZWQ9InRydWUiIGVuYWJsZWRFaGNp PSJ0cnVlIi8+CiAgICAgICAgPE5ldHdvcms+CiAgICAgICAgICA8QWRhcHRl ciBzbG90PSIwIiBlbmFibGVkPSJ0cnVlIiBNQUNBZGRyZXNzPSIwODAwMjdF RUY4QTgiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMi PgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcy8+CiAgICAgICAgICAgIDxO QVQ+CiAgICAgICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNl LXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg IDwvTkFUPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFkYXB0 ZXIgc2xvdD0iMSIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAy N0ZCMjE4NSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3 MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAgICAg IDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVl IiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2Ui Lz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJv eHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgogICAg ICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9kZXM+ CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgICA8QWRhcHRlciBzbG90 PSIyIiBlbmFibGVkPSJmYWxzZSIgTUFDQWRkcmVzcz0iMDgwMDI3QjUyMzIx IiBjYWJsZT0idHJ1ZSIgc3BlZWQ9IjAiIHR5cGU9IkFtNzlDOTczIj4KICAg ICAgICAgICAgPERpc2FibGVkTW9kZXM+CiAgICAgICAgICAgICAgPE5BVD4K ICAgICAgICAgICAgICAgIDxETlMgcGFzcy1kb21haW49InRydWUiIHVzZS1w cm94eT0iZmFsc2UiIHVzZS1ob3N0LXJlc29sdmVyPSJmYWxzZSIvPgogICAg ICAgICAgICAgICAgPEFsaWFzIGxvZ2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5 PSJmYWxzZSIgdXNlLXNhbWUtcG9ydHM9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgPC9OQVQ+CiAgICAgICAgICAgIDwvRGlzYWJsZWRNb2Rlcz4KICAgICAg ICAgIDwvQWRhcHRlcj4KICAgICAgICAgIDxBZGFwdGVyIHNsb3Q9IjMiIGVu YWJsZWQ9ImZhbHNlIiBNQUNBZGRyZXNzPSIwODAwMjdFQUJDQzkiIGNhYmxl PSJ0cnVlIiBzcGVlZD0iMCIgdHlwZT0iQW03OUM5NzMiPgogICAgICAgICAg ICA8RGlzYWJsZWRNb2Rlcz4KICAgICAgICAgICAgICA8TkFUPgogICAgICAg ICAgICAgICAgPEROUyBwYXNzLWRvbWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJm YWxzZSIgdXNlLWhvc3QtcmVzb2x2ZXI9ImZhbHNlIi8+CiAgICAgICAgICAg ICAgICA8QWxpYXMgbG9nZ2luZz0iZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNl IiB1c2Utc2FtZS1wb3J0cz0iZmFsc2UiLz4KICAgICAgICAgICAgICA8L05B VD4KICAgICAgICAgICAgPC9EaXNhYmxlZE1vZGVzPgogICAgICAgICAgPC9B ZGFwdGVyPgogICAgICAgICAgPEFkYXB0ZXIgc2xvdD0iNCIgZW5hYmxlZD0i ZmFsc2UiIE1BQ0FkZHJlc3M9IjA4MDAyNzNFNTlDRSIgY2FibGU9InRydWUi IHNwZWVkPSIwIiB0eXBlPSJBbTc5Qzk3MyI+CiAgICAgICAgICAgIDxEaXNh YmxlZE1vZGVzPgogICAgICAgICAgICAgIDxOQVQ+CiAgICAgICAgICAgICAg ICA8RE5TIHBhc3MtZG9tYWluPSJ0cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1 c2UtaG9zdC1yZXNvbHZlcj0iZmFsc2UiLz4KICAgICAgICAgICAgICAgIDxB bGlhcyBsb2dnaW5nPSJmYWxzZSIgcHJveHktb25seT0iZmFsc2UiIHVzZS1z YW1lLXBvcnRzPSJmYWxzZSIvPgogICAgICAgICAgICAgIDwvTkFUPgogICAg ICAgICAgICA8L0Rpc2FibGVkTW9kZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+ CiAgICAgICAgICA8QWRhcHRlciBzbG90PSI1IiBlbmFibGVkPSJmYWxzZSIg TUFDQWRkcmVzcz0iMDgwMDI3NTM1QkVBIiBjYWJsZT0idHJ1ZSIgc3BlZWQ9 IjAiIHR5cGU9IkFtNzlDOTczIj4KICAgICAgICAgICAgPERpc2FibGVkTW9k ZXM+CiAgICAgICAgICAgICAgPE5BVD4KICAgICAgICAgICAgICAgIDxETlMg cGFzcy1kb21haW49InRydWUiIHVzZS1wcm94eT0iZmFsc2UiIHVzZS1ob3N0 LXJlc29sdmVyPSJmYWxzZSIvPgogICAgICAgICAgICAgICAgPEFsaWFzIGxv Z2dpbmc9ImZhbHNlIiBwcm94eS1vbmx5PSJmYWxzZSIgdXNlLXNhbWUtcG9y dHM9ImZhbHNlIi8+CiAgICAgICAgICAgICAgPC9OQVQ+CiAgICAgICAgICAg IDwvRGlzYWJsZWRNb2Rlcz4KICAgICAgICAgIDwvQWRhcHRlcj4KICAgICAg ICAgIDxBZGFwdGVyIHNsb3Q9IjYiIGVuYWJsZWQ9ImZhbHNlIiBNQUNBZGRy ZXNzPSIwODAwMjdDMDY0ODUiIGNhYmxlPSJ0cnVlIiBzcGVlZD0iMCIgdHlw ZT0iQW03OUM5NzMiPgogICAgICAgICAgICA8RGlzYWJsZWRNb2Rlcz4KICAg ICAgICAgICAgICA8TkFUPgogICAgICAgICAgICAgICAgPEROUyBwYXNzLWRv bWFpbj0idHJ1ZSIgdXNlLXByb3h5PSJmYWxzZSIgdXNlLWhvc3QtcmVzb2x2 ZXI9ImZhbHNlIi8+CiAgICAgICAgICAgICAgICA8QWxpYXMgbG9nZ2luZz0i ZmFsc2UiIHByb3h5LW9ubHk9ImZhbHNlIiB1c2Utc2FtZS1wb3J0cz0iZmFs c2UiLz4KICAgICAgICAgICAgICA8L05BVD4KICAgICAgICAgICAgPC9EaXNh YmxlZE1vZGVzPgogICAgICAgICAgPC9BZGFwdGVyPgogICAgICAgICAgPEFk YXB0ZXIgc2xvdD0iNyIgZW5hYmxlZD0iZmFsc2UiIE1BQ0FkZHJlc3M9IjA4 MDAyN0Q4QzMyOSIgY2FibGU9InRydWUiIHNwZWVkPSIwIiB0eXBlPSJBbTc5 Qzk3MyI+CiAgICAgICAgICAgIDxEaXNhYmxlZE1vZGVzPgogICAgICAgICAg ICAgIDxOQVQ+CiAgICAgICAgICAgICAgICA8RE5TIHBhc3MtZG9tYWluPSJ0 cnVlIiB1c2UtcHJveHk9ImZhbHNlIiB1c2UtaG9zdC1yZXNvbHZlcj0iZmFs c2UiLz4KICAgICAgICAgICAgICAgIDxBbGlhcyBsb2dnaW5nPSJmYWxzZSIg cHJveHktb25seT0iZmFsc2UiIHVzZS1zYW1lLXBvcnRzPSJmYWxzZSIvPgog ICAgICAgICAgICAgIDwvTkFUPgogICAgICAgICAgICA8L0Rpc2FibGVkTW9k ZXM+CiAgICAgICAgICA8L0FkYXB0ZXI+CiAgICAgICAgPC9OZXR3b3JrPgog ICAgICAgIDxVQVJUPgogICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgzZjgiIElSUT0iNCIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIgZW5hYmxl ZD0iZmFsc2UiIElPQmFzZT0iMHgyZjgiIElSUT0iMyIgaG9zdE1vZGU9IkRp c2Nvbm5lY3RlZCIvPgogICAgICAgIDwvVUFSVD4KICAgICAgICA8TFBUPgog ICAgICAgICAgPFBvcnQgc2xvdD0iMCIgZW5hYmxlZD0iZmFsc2UiIElPQmFz ZT0iMHgzNzgiIElSUT0iNyIvPgogICAgICAgICAgPFBvcnQgc2xvdD0iMSIg ZW5hYmxlZD0iZmFsc2UiIElPQmFzZT0iMHgzNzgiIElSUT0iNyIvPgogICAg ICAgIDwvTFBUPgogICAgICAgIDxBdWRpb0FkYXB0ZXIgY29udHJvbGxlcj0i QUM5NyIgZHJpdmVyPSJEaXJlY3RTb3VuZCIgZW5hYmxlZD0idHJ1ZSIvPgog ICAgICAgIDxSVEMgbG9jYWxPclVUQz0ibG9jYWwiLz4KICAgICAgICA8U2hh cmVkRm9sZGVycy8+CiAgICAgICAgPENsaXBib2FyZCBtb2RlPSJEaXNhYmxl ZCIvPgogICAgICAgIDxEcmFnQW5kRHJvcCBtb2RlPSJEaXNhYmxlZCIvPgog ICAgICAgIDxJTz4KICAgICAgICAgIDxJb0NhY2hlIGVuYWJsZWQ9InRydWUi IHNpemU9IjUiLz4KICAgICAgICAgIDxCYW5kd2lkdGhHcm91cHMvPgogICAg ICAgIDwvSU8+CiAgICAgICAgPEhvc3RQY2k+CiAgICAgICAgICA8RGV2aWNl cy8+CiAgICAgICAgPC9Ib3N0UGNpPgogICAgICAgIDxFbXVsYXRlZFVTQj4K ICAgICAgICAgIDxDYXJkUmVhZGVyIGVuYWJsZWQ9ImZhbHNlIi8+CiAgICAg ICAgPC9FbXVsYXRlZFVTQj4KICAgICAgICA8R3Vlc3QgbWVtb3J5QmFsbG9v blNpemU9IjAiLz4KICAgICAgICA8R3Vlc3RQcm9wZXJ0aWVzLz4KICAgICAg PC9IYXJkd2FyZT4KICAgICAgPFN0b3JhZ2VDb250cm9sbGVycz4KICAgICAg ICA8U3RvcmFnZUNvbnRyb2xsZXIgbmFtZT0iSURFIiB0eXBlPSJQSUlYNCIg UG9ydENvdW50PSIyIiB1c2VIb3N0SU9DYWNoZT0idHJ1ZSIgQm9vdGFibGU9 InRydWUiPgogICAgICAgICAgPEF0dGFjaGVkRGV2aWNlIHR5cGU9IkhhcmRE aXNrIiBwb3J0PSIwIiBkZXZpY2U9IjAiPgogICAgICAgICAgICA8SW1hZ2Ug dXVpZD0ie2IxNTM1NGI4LWU0NWUtNDAzYi05YTI5LTgyMGM1Mzg4MTA0MX0i Lz4KICAgICAgICAgIDwvQXR0YWNoZWREZXZpY2U+CiAgICAgICAgICA8QXR0 YWNoZWREZXZpY2UgcGFzc3Rocm91Z2g9ImZhbHNlIiB0eXBlPSJEVkQiIHBv cnQ9IjEiIGRldmljZT0iMCIvPgogICAgICAgIDwvU3RvcmFnZUNvbnRyb2xs ZXI+CiAgICAgIDwvU3RvcmFnZUNvbnRyb2xsZXJzPgogICAgPC92Ym94Ok1h Y2hpbmU+CiAgPC9WaXJ0dWFsU3lzdGVtPgo8L0VudmVsb3BlPgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAbWluaW1hbC1kaXNrMS52bWRrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2MDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMjA1 MDAwADEyNTc0MDQ0MjQ3ADAwMTQyNDAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNv bWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc29tZW9uZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABLRE1WAwAAAAEAAwAAIAAAAAAAAIAAAAAA AAAAAQAAAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAP//////////gAAAAAAA AAAACiANCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgRGlzayBE ZXNjcmlwdG9yRmlsZQp2ZXJzaW9uPTEKQ0lEPTJiOWI0MTk4CnBhcmVudENJ RD1mZmZmZmZmZgpjcmVhdGVUeXBlPSJzdHJlYW1PcHRpbWl6ZWQiCgojIEV4 dGVudCBkZXNjcmlwdGlvbgpSRE9OTFkgODE5MiBTUEFSU0UgIm1pbmltYWwt ZGlzazEudm1kayIKCiMgVGhlIGRpc2sgRGF0YSBCYXNlIAojRERCCgpkZGIu dmlydHVhbEhXVmVyc2lvbiA9ICI0IgpkZGIuYWRhcHRlclR5cGU9ImlkZSIK ZGRiLmdlb21ldHJ5LmN5bGluZGVycz0iOCIKZGRiLmdlb21ldHJ5LmhlYWRz PSIxNiIKZGRiLmdlb21ldHJ5LnNlY3RvcnM9IjYzIgpkZGIudXVpZC5pbWFn ZT0iYTFmZGFjYWYtYzBjYS00OWUzLWIwNWUtZDdlMWQ3MDQ4Mjg0IgpkZGIu dXVpZC5wYXJlbnQ9IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCIKZGRiLnV1aWQubW9kaWZpY2F0aW9uPSIwMDAwMDAwMC0wMDAwLTAw MDAtMDAwMC0wMDAwMDAwMDAwMDAiCmRkYi51dWlkLnBhcmVudG1vZGlmaWNh dGlvbj0iMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgpk ZGIuY29tbWVudD0iIgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0RN VgMAAAABAAMAACAAAAAAAACAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAgAA AAAAAAAAAACBAAAAAAAAAIAAAAAAAAAAAAogDQoBAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1pbmltYWwubWYAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjAwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDIwMQAxMjU3NDA0NDI0NwAw MDEyNjY0ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABzb21lb25lAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHNvbWVvbmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAU0hBMSAobWluaW1hbC5vdmYpPSBiZWI1NjJkZTViN2I3ZWZlODMxNDUy ZDg0MGZhODg2OGQyMjk3N2M5ClNIQTEgKG1pbmltYWwtZGlzazEudm1kayk9 IDM4YTJmZjI1OWEzOGM2NGYxMzgxMzBjYjQ0Y2I4ZTAyMDhlOTZmYTkKAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= http_version: recorded_at: Thu, 25 Aug 2016 22:37:11 GMT - request: method: delete uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images/4de8e8d6-f824-4c0d-b56c-66bf05fb60c7 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 204 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-ac0bba5f-2525-42cc-a969-32eeda63fe32 Date: - Thu, 25 Aug 2016 22:37:11 GMT Connection: - close body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 25 Aug 2016 22:37:11 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images?name=foobar_up1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '85' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-1b35f8ec-6228-43bd-b44f-fb56928c914c Date: - Thu, 25 Aug 2016 22:37:12 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_up1"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:12 GMT - request: method: get uri: https://pivotal-cloud-foundry.openstack.blueboxgrid.com:9292/v2/images?name=foobar_up1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - c26e3839ed124b69aca21568c33236a0 response: status: code: 200 message: '' headers: Content-Length: - '85' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-0cb1d7bf-5c45-48b0-a468-eacfa260d0e8 Date: - Thu, 25 Aug 2016 22:37:12 GMT Connection: - close body: encoding: UTF-8 string: '{"images": [], "schema": "/v2/schemas/images", "first": "/v2/images?name=foobar_up1"}' http_version: recorded_at: Thu, 25 Aug 2016 22:37:12 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/images_v2_find_by_id.yml000066400000000000000000000045101476630434000273150ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 200 message: '' headers: Content-Length: - '563' Content-Type: - application/json; charset=UTF-8 X-Openstack-Request-Id: - req-3ff0af92-827c-4e9d-bf1b-da27d93e4acb Date: - Thu, 25 Aug 2016 17:09:02 GMT Connection: - close body: encoding: UTF-8 string: '{"status": "queued", "name": "foobar", "tags": [], "container_format": null, "created_at": "2016-08-25T17:09:00Z", "size": null, "disk_format": null, "updated_at": "2016-08-25T17:09:00Z", "visibility": "private", "locations": [], "self": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497", "min_disk": 0, "protected": false, "id": "fe05659e-d433-4e09-aa78-19e0b7f5e497", "file": "/v2/images/fe05659e-d433-4e09-aa78-19e0b7f5e497/file", "checksum": null, "owner": "7b7688e5eecd4d6aa5b5b2cb3e93a778", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}' http_version: recorded_at: Thu, 25 Aug 2016 17:09:02 GMT - request: method: get uri: http://devstack.openstack.stack:9292/v2/images/11111111-2222-3333-aaaa-bbbbbbcccce2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1e843e1adc5342dab74687f6b359185c response: status: code: 404 message: '' headers: Content-Length: - '79' Content-Type: - text/plain; charset=UTF-8 X-Openstack-Request-Id: - req-28577b1e-64c3-463c-b9eb-540fb24ce017 Date: - Fri, 26 Aug 2016 00:36:37 GMT Connection: - close body: encoding: UTF-8 string: "404 Not Found\n\nNo image found with ID 11111111-2222-3333-aaaa-bbbbbbcccce2\n\n \ " http_version: recorded_at: Fri, 26 Aug 2016 00:36:37 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/image_v2/minimal.ova000077500000000000000000002400001476630434000247040ustar00rootroot00000000000000minimal.ovf000060000000000000000000000266341257404424700130760ustar someonesomeone List of the virtual disks used in the package Logical networks used in the package Logical network used by this appliance. A virtual machine The kind of installed guest operating system Other Other Virtual hardware requirements for a virtual machine Virtual Hardware Family 0 minimal virtualbox-2.2 1 virtual CPU Number of virtual CPUs 1 virtual CPU 1 3 1 MegaBytes 64 MB of memory Memory Size 64 MB of memory 2 4 64 0 ideController0 IDE Controller ideController0 3 PIIX4 5 1 ideController1 IDE Controller ideController1 4 PIIX4 5 0 usb USB Controller usb 5 23 3 false sound Sound Card sound 6 ensoniq1371 35 0 disk1 Disk Image disk1 /disk/vmdisk1 7 3 17 0 true cdrom1 CD-ROM Drive cdrom1 8 4 15 true Ethernet adapter on 'NAT' NAT Ethernet adapter on 'NAT' 9 PCNet32 10 Complete VirtualBox machine configuration in VirtualBox format minimal-disk1.vmdk000060000000000000000000002050001257404424700142400ustar someonesomeoneKDMV €ÿÿÿÿÿÿÿÿ€ # Disk DescriptorFile version=1 CID=2b9b4198 parentCID=ffffffff createType="streamOptimized" # Extent description RDONLY 8192 SPARSE "minimal-disk1.vmdk" # The disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.adapterType="ide" ddb.geometry.cylinders="8" ddb.geometry.heads="16" ddb.geometry.sectors="63" ddb.uuid.image="a1fdacaf-c0ca-49e3-b05e-d7e1d7048284" ddb.uuid.parent="00000000-0000-0000-0000-000000000000" ddb.uuid.modification="00000000-0000-0000-0000-000000000000" ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000" ddb.comment="" KDMV €€ minimal.mf000060000000000000000000000002011257404424700126640ustar someonesomeoneSHA1 (minimal.ovf)= beb562de5b7b7efe831452d840fa8868d22977c9 SHA1 (minimal-disk1.vmdk)= 38a2ff259a38c64f138130cb44cb8e0208e96fa9 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/000077500000000000000000000000001476630434000232445ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/alarm_crud.yml000066400000000000000000011400531476630434000261040ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: UTF-8 string: '{"name":"another notification","type":"EMAIL","address":"admin@example.com"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 201 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:18 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '278' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"name": "another notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/8d2fe3f5-d2d9-4fe1-a7da-1f8eed3b3c50", "rel": "self"}], "period": 0, "address": "admin@example.com", "type": "EMAIL", "id": "8d2fe3f5-d2d9-4fe1-a7da-1f8eed3b3c50"}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:18 GMT - request: method: post uri: http://devstack.openstack.stack/v2.0/alarm-definitions body: encoding: UTF-8 string: '{"name":"avg cpu.user_per ge 0","expression":"(avg(cpu.user_perc) >= 0)","description":"ensure an alarm is thrown in crud test."}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 201 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:18 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '468' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"ok_actions": [], "description": "ensure an alarm is thrown in crud test.", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/6882af86-a05e-44b4-b3c9-d1ed2ac4bfda", "rel": "self"}], "match_by": [], "actions_enabled": "true", "id": "6882af86-a05e-44b4-b3c9-d1ed2ac4bfda", "severity": "LOW", "alarm_actions": [], "undetermined_actions": [], "name": "avg cpu.user_per ge 0", "deterministic": false, "expression": "(avg(cpu.user_perc) >= 0)"}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:18 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:19 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '36357' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "ALARM", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "MEDIUM", "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "name": "hgws"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a", "rel": "self"}], "updated_timestamp": "2016-09-21T15:33:26Z", "created_timestamp": "2016-09-20T15:01:15Z", "state_updated_timestamp": "2016-09-21T13:13:34Z", "id": "0550bba7-3f38-43e1-9111-ae780e522a3a"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/1cc787b8-2255-4169-b73b-542ccfe411e3", "rel": "self"}], "updated_timestamp": "2016-09-21T15:38:24Z", "created_timestamp": "2016-08-22T22:32:05Z", "state_updated_timestamp": "2016-09-21T15:38:24Z", "id": "1cc787b8-2255-4169-b73b-542ccfe411e3"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "UNDETERMINED", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/1f0ca247-d338-4c4b-b581-d09cdf90b066", "rel": "self"}], "updated_timestamp": "2016-09-21T14:49:06Z", "created_timestamp": "2016-09-09T12:21:08Z", "state_updated_timestamp": "2016-09-21T14:49:06Z", "id": "1f0ca247-d338-4c4b-b581-d09cdf90b066"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "CRITICAL", "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "name": "swift-low-storage-alert-1tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/31f48c38-d89c-45c1-a66c-4557dbb545f0", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "31f48c38-d89c-45c1-a66c-4557dbb545f0"}, {"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "OK", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "HIGH", "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "name": "swift-cpu-overload"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/3b2311a0-81ef-4d76-814d-85d19088994b", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-09-09T10:04:59Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "3b2311a0-81ef-4d76-814d-85d19088994b"}, {"metrics": [{"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "name": "swift-no-mem-swapping"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/44786464-fcb3-46ea-b452-ff06b6ab9952", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "44786464-fcb3-46ea-b452-ff06b6ab9952"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "name": "swift-low-storage-warn-10tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d70d7e-6233-4978-b07f-2af3bca62c28", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-23T18:17:20Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "93d70d7e-6233-4978-b07f-2af3bca62c28"}, {"metrics": [{"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "name": "swift-overlapping-containers"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d841f5-4b03-4285-8ce6-3e149a7d76c6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "93d841f5-4b03-4285-8ce6-3e149a7d76c6"}, {"metrics": [{"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-admin", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-admin", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-admin", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-admin", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-admin", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-admin", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-admin", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "name": "swift-disk-full"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/a6e93871-c510-44e4-9348-52e26ec0a745", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "a6e93871-c510-44e4-9348-52e26ec0a745"}, {"metrics": [{"name": "test.monasca.fitness", "dimensions": {}}], "lifecycle_state": null, "state": "UNDETERMINED", "link": null, "alarm_definition": {"severity": "LOW", "id": "64c8c42a-9089-4a71-a743-58479c8fa3a2", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/64c8c42a-9089-4a71-a743-58479c8fa3a2", "rel": "self"}], "name": "test.monasca.fitness.alarm.20160825135325"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/bb1aae78-5d15-4825-be68-ca6eaba34344", "rel": "self"}], "updated_timestamp": "2016-08-25T13:57:47Z", "created_timestamp": "2016-08-25T13:54:04Z", "state_updated_timestamp": "2016-08-25T13:57:47Z", "id": "bb1aae78-5d15-4825-be68-ca6eaba34344"}, {"metrics": [{"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "name": "swift-overlapping-objects"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/d5120bb8-ab30-4fe4-8500-02fec1059fe5", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "d5120bb8-ab30-4fe4-8500-02fec1059fe5"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:19 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms?state=OK body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:19 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '33303' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/1cc787b8-2255-4169-b73b-542ccfe411e3", "rel": "self"}], "updated_timestamp": "2016-09-21T15:38:24Z", "created_timestamp": "2016-08-22T22:32:05Z", "state_updated_timestamp": "2016-09-21T15:38:24Z", "id": "1cc787b8-2255-4169-b73b-542ccfe411e3"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "CRITICAL", "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "name": "swift-low-storage-alert-1tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/31f48c38-d89c-45c1-a66c-4557dbb545f0", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "31f48c38-d89c-45c1-a66c-4557dbb545f0"}, {"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "OK", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "HIGH", "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "name": "swift-cpu-overload"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/3b2311a0-81ef-4d76-814d-85d19088994b", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-09-09T10:04:59Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "3b2311a0-81ef-4d76-814d-85d19088994b"}, {"metrics": [{"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "name": "swift-no-mem-swapping"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/44786464-fcb3-46ea-b452-ff06b6ab9952", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "44786464-fcb3-46ea-b452-ff06b6ab9952"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "name": "swift-low-storage-warn-10tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d70d7e-6233-4978-b07f-2af3bca62c28", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-23T18:17:20Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "93d70d7e-6233-4978-b07f-2af3bca62c28"}, {"metrics": [{"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "name": "swift-overlapping-containers"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d841f5-4b03-4285-8ce6-3e149a7d76c6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "93d841f5-4b03-4285-8ce6-3e149a7d76c6"}, {"metrics": [{"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-admin", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-admin", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-admin", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-admin", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-admin", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-admin", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-admin", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "name": "swift-disk-full"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/a6e93871-c510-44e4-9348-52e26ec0a745", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "a6e93871-c510-44e4-9348-52e26ec0a745"}, {"metrics": [{"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "name": "swift-overlapping-objects"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/d5120bb8-ab30-4fe4-8500-02fec1059fe5", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "d5120bb8-ab30-4fe4-8500-02fec1059fe5"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms?state=OK", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:19 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms?metric_name=cpu.idle_perc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:19 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '3202' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "ALARM", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "MEDIUM", "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "name": "hgws"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a", "rel": "self"}], "updated_timestamp": "2016-09-21T15:33:26Z", "created_timestamp": "2016-09-20T15:01:15Z", "state_updated_timestamp": "2016-09-21T13:13:34Z", "id": "0550bba7-3f38-43e1-9111-ae780e522a3a"}, {"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "OK", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "HIGH", "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "name": "swift-cpu-overload"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/3b2311a0-81ef-4d76-814d-85d19088994b", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-09-09T10:04:59Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "3b2311a0-81ef-4d76-814d-85d19088994b"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms?metric_name=cpu.idle_perc", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:19 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:19 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '36357' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "ALARM", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "MEDIUM", "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "name": "hgws"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a", "rel": "self"}], "updated_timestamp": "2016-09-21T15:33:26Z", "created_timestamp": "2016-09-20T15:01:15Z", "state_updated_timestamp": "2016-09-21T13:13:34Z", "id": "0550bba7-3f38-43e1-9111-ae780e522a3a"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/1cc787b8-2255-4169-b73b-542ccfe411e3", "rel": "self"}], "updated_timestamp": "2016-09-21T15:38:24Z", "created_timestamp": "2016-08-22T22:32:05Z", "state_updated_timestamp": "2016-09-21T15:38:24Z", "id": "1cc787b8-2255-4169-b73b-542ccfe411e3"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "UNDETERMINED", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/1f0ca247-d338-4c4b-b581-d09cdf90b066", "rel": "self"}], "updated_timestamp": "2016-09-21T14:49:06Z", "created_timestamp": "2016-09-09T12:21:08Z", "state_updated_timestamp": "2016-09-21T14:49:06Z", "id": "1f0ca247-d338-4c4b-b581-d09cdf90b066"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "CRITICAL", "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "name": "swift-low-storage-alert-1tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/31f48c38-d89c-45c1-a66c-4557dbb545f0", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "31f48c38-d89c-45c1-a66c-4557dbb545f0"}, {"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "OK", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "HIGH", "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "name": "swift-cpu-overload"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/3b2311a0-81ef-4d76-814d-85d19088994b", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-09-09T10:04:59Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "3b2311a0-81ef-4d76-814d-85d19088994b"}, {"metrics": [{"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "mem.swap_used_mb", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "name": "swift-no-mem-swapping"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/44786464-fcb3-46ea-b452-ff06b6ab9952", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "44786464-fcb3-46ea-b452-ff06b6ab9952"}, {"metrics": [{"name": "swift.cluster.md5.ring.not_matched", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "name": "swift-mismatched-rings"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "89bbe0c3-6be0-4d1b-b4ae-7c1643e7cad6"}, {"metrics": [{"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.cluster.storage.free_bytes", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "name": "swift-low-storage-warn-10tb"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d70d7e-6233-4978-b07f-2af3bca62c28", "rel": "self"}], "updated_timestamp": "2016-09-08T08:43:19Z", "created_timestamp": "2016-08-23T18:17:20Z", "state_updated_timestamp": "2016-09-08T08:43:19Z", "id": "93d70d7e-6233-4978-b07f-2af3bca62c28"}, {"metrics": [{"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.container.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "name": "swift-overlapping-containers"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/93d841f5-4b03-4285-8ce6-3e149a7d76c6", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "93d841f5-4b03-4285-8ce6-3e149a7d76c6"}, {"metrics": [{"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdl", "systemtype": "swift-storage", "mount_point": "/srv/node/sdl", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-admin", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "efivarfs", "systemtype": "swift-storage", "mount_point": "/sys/firmware/efi/efivars", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdb", "systemtype": "swift-storage", "mount_point": "/srv/node/sdb", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-admin", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/srv/node/rhel-swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-swift", "systemtype": "swift-storage", "mount_point": "/swift", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-admin", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-proxy", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-proxy", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-proxy", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "binfmt_misc", "systemtype": "swift-storage", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rhel-root", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdh", "systemtype": "swift-storage", "mount_point": "/srv/node/sdh", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdf", "systemtype": "swift-storage", "mount_point": "/srv/node/sdf", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-admin", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdn", "systemtype": "swift-storage", "mount_point": "/srv/node/sdn", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdo", "systemtype": "swift-storage", "mount_point": "/srv/node/sdo", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-storage", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "systemd-1", "systemtype": "swift-proxy", "mount_point": "/proc/sys/fs/binfmt_misc", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdi", "systemtype": "swift-storage", "mount_point": "/srv/node/sdi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda1", "systemtype": "swift-proxy", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdd", "systemtype": "swift-storage", "mount_point": "/srv/node/sdd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-admin", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-storage", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc2", "systemtype": "swift-storage", "mount_point": "/boot", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdc1", "systemtype": "swift-storage", "mount_point": "/boot/efi", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-tmp", "systemtype": "swift-proxy", "mount_point": "/tmp", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "mqueue", "systemtype": "swift-admin", "mount_point": "/dev/mqueue", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdj", "systemtype": "swift-storage", "mount_point": "/srv/node/sdj", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-var", "systemtype": "swift-proxy", "mount_point": "/var", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdk", "systemtype": "swift-storage", "mount_point": "/srv/node/sdk", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-root", "systemtype": "swift-proxy", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sda", "systemtype": "swift-storage", "mount_point": "/srv/node/sda", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "nfsd", "systemtype": "swift-admin", "mount_point": "/proc/fs/nfsd", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdm", "systemtype": "swift-storage", "mount_point": "/srv/node/sdm", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "rootfs", "systemtype": "swift-admin", "mount_point": "/", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sdg", "systemtype": "swift-storage", "mount_point": "/srv/node/sdg", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "sde", "systemtype": "swift-storage", "mount_point": "/srv/node/sde", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-home", "systemtype": "swift-proxy", "mount_point": "/home", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "disk.space_used_perc", "dimensions": {"device": "vg0-opt", "systemtype": "swift-admin", "mount_point": "/opt", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "name": "swift-disk-full"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/a6e93871-c510-44e4-9348-52e26ec0a745", "rel": "self"}], "updated_timestamp": "2016-09-20T08:52:02Z", "created_timestamp": "2016-08-22T22:22:31Z", "state_updated_timestamp": "2016-09-20T08:52:02Z", "id": "a6e93871-c510-44e4-9348-52e26ec0a745"}, {"metrics": [{"name": "test.monasca.fitness", "dimensions": {}}], "lifecycle_state": null, "state": "UNDETERMINED", "link": null, "alarm_definition": {"severity": "LOW", "id": "64c8c42a-9089-4a71-a743-58479c8fa3a2", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/64c8c42a-9089-4a71-a743-58479c8fa3a2", "rel": "self"}], "name": "test.monasca.fitness.alarm.20160825135325"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/bb1aae78-5d15-4825-be68-ca6eaba34344", "rel": "self"}], "updated_timestamp": "2016-08-25T13:57:47Z", "created_timestamp": "2016-08-25T13:54:04Z", "state_updated_timestamp": "2016-08-25T13:57:47Z", "id": "bb1aae78-5d15-4825-be68-ca6eaba34344"}, {"metrics": [{"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "swift.dispersion.object.overlapping", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": null, "state": "OK", "link": null, "alarm_definition": {"severity": "HIGH", "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "name": "swift-overlapping-objects"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/d5120bb8-ab30-4fe4-8500-02fec1059fe5", "rel": "self"}], "updated_timestamp": "2016-09-21T12:42:35Z", "created_timestamp": "2016-09-06T11:39:43Z", "state_updated_timestamp": "2016-09-21T12:42:35Z", "id": "d5120bb8-ab30-4fe4-8500-02fec1059fe5"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:19 GMT - request: method: put uri: http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a body: encoding: UTF-8 string: '{"state":"ALARM","lifecycle_state":"OPEN","link":"http://pagerduty.com/"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:21 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1517' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "ALARM", "link": "http://pagerduty.com/", "alarm_definition": {"severity": "MEDIUM", "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "name": "hgws"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a", "rel": "self"}], "updated_timestamp": "2016-09-21T15:39:20Z", "created_timestamp": "2016-09-20T15:01:15Z", "state_updated_timestamp": "2016-09-21T13:13:34Z", "id": "0550bba7-3f38-43e1-9111-ae780e522a3a"}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:21 GMT - request: method: patch uri: http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a body: encoding: UTF-8 string: '{"link":"http://somesite.com/this-alarm-info"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:21 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1531' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"metrics": [{"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-storage", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-proxy", "hostname": "devstack.openstack.stack", "service": "object-store"}}, {"name": "cpu.idle_perc", "dimensions": {"systemtype": "swift-admin", "hostname": "devstack.openstack.stack", "service": "object-store"}}], "lifecycle_state": "OPEN", "state": "ALARM", "link": "http://somesite.com/this-alarm-info", "alarm_definition": {"severity": "MEDIUM", "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "name": "hgws"}, "links": [{"href": "http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a", "rel": "self"}], "updated_timestamp": "2016-09-21T15:39:21Z", "created_timestamp": "2016-09-20T15:01:15Z", "state_updated_timestamp": "2016-09-21T13:13:34Z", "id": "0550bba7-3f38-43e1-9111-ae780e522a3a"}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:21 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms/state-history?limit=5 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Wed, 21 Sep 2016 15:40:05 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/state-history?limit=5"},{"rel":"next","href":"http://devstack.openstack.stack/v2.0/alarms/state-history?offset=2016-05-12T11%3A33%3A32.544Z&limit=5"}],"elements":[{"id":"2016-05-11T10:15:03.772Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-11T10:15:03.772Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-11T19:03:20.305Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"OK","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0","reason_data":"{}","timestamp":"2016-05-11T19:03:20.305Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-12T06:20:39.066Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-12T06:20:39.066Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-12T06:45:40.655Z","alarm_id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(cpu.idle_perc{service=monitoring}, 180) < 20.0 with the values: [89.69999999999999]","reason_data":"{}","timestamp":"2016-05-12T06:45:40.655Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"cpu.idle_perc","dimensions":{"service":"monitoring"},"operator":"LT","threshold":20.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[89.69999999999999]}]},{"id":"2016-05-12T11:33:32.544Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-12T11:33:32.544Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:40:05 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a/state-history body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Wed, 21 Sep 2016 15:40:15 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a/state-history"}],"elements":[{"id":"2016-05-12T20:26:12.968Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0 with the values: [5.0]","reason_data":"{}","timestamp":"2016-05-12T20:26:12.968Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"ALARM","current_values":[5.0]}]},{"id":"2016-05-13T08:57:59.007Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-api","service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","url":"http://localhost:8081/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0 with the values: [6.0]","reason_data":"{}","timestamp":"2016-05-13T08:57:59.007Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"ALARM","current_values":[6.0]}]},{"id":"2016-05-13T16:07:05.105Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-api","service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","url":"http://localhost:8081/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"ALARM","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0","reason_data":"{}","timestamp":"2016-05-13T16:07:05.105Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-18T19:02:36.905Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","url":"http://localhost:8091/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-api","service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","url":"http://localhost:8081/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0 with the values: [5.0]","reason_data":"{}","timestamp":"2016-05-18T19:02:36.905Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"ALARM","current_values":[5.0]}]},{"id":"2016-05-19T09:05:37.759Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","url":"http://localhost:8091/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-api","service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","url":"http://localhost:8081/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"ALARM","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0 with the values: [1.0]","reason_data":"{}","timestamp":"2016-05-19T09:05:37.759Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[1.0]}]},{"id":"2016-05-19T09:58:59.932Z","alarm_id":"0550bba7-3f38-43e1-9111-ae780e522a3a","metrics":[{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","url":"http://localhost:8091/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","url":"http://localhost:8091/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-api","service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","url":"http://localhost:8081/healthcheck"}},{"id":null,"name":"http_status","dimensions":{"component":"monasca-persister","service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","url":"http://localhost:8091/healthcheck"}}],"old_state":"OK","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: sum(http_status{service=monitoring}, 180) > 1.0 with the values: [3.0]","reason_data":"{}","timestamp":"2016-05-19T09:58:59.932Z","sub_alarms":[{"sub_alarm_expression":{"function":"SUM","metric_name":"http_status","dimensions":{"service":"monitoring"},"operator":"GT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"ALARM","current_values":[3.0]}]}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:40:15 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/alarms/0550bba7-3f38-43e1-9111-ae780e522a3a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 204 message: '' headers: Server: - nginx/1.9.13 Date: - Wed, 21 Sep 2016 15:40:22 GMT Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:40:22 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Wed, 21 Sep 2016 15:41:00 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms"}],"elements":[{"id":"05db9a23-cde6-4160-a759-76596b28013e","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/05db9a23-cde6-4160-a759-76596b28013e"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T08:01:07.000Z","updated_timestamp":"2016-05-17T08:01:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"2a4e638f-6bf8-4bec-bbdb-878c796a32eb","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/2a4e638f-6bf8-4bec-bbdb-878c796a32eb"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"influxdb","process_name":"influxd","service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1a26608b-2895-4e82-90ef-a1deccc3382c","name":"monasca-influxdb-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1a26608b-2895-4e82-90ef-a1deccc3382c"}]},"state_updated_timestamp":"2016-05-19T09:52:47.000Z","updated_timestamp":"2016-05-19T09:52:47.000Z","created_timestamp":"2016-05-19T09:49:06.000Z"},{"id":"3b80e16c-9c6a-40dd-b2c0-fea061032e35","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3b80e16c-9c6a-40dd-b2c0-fea061032e35"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"4aa5d687-a11c-4556-a30f-f42e6cd8fefd","name":"swift-low-storage-warn-10tb","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/4aa5d687-a11c-4556-a30f-f42e6cd8fefd"}]},"state_updated_timestamp":"2016-05-17T08:14:07.000Z","updated_timestamp":"2016-05-17T08:14:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"3f69fba9-61f9-422b-9140-6debc3710bda","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3f69fba9-61f9-422b-9140-6debc3710bda"}],"metrics":[{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"48e99108-112e-472b-a97e-ede4b1f9ca55","name":"swift-no-mem-swapping","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/48e99108-112e-472b-a97e-ede4b1f9ca55"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"75f10fb4-0757-47aa-b420-0fd5352dc2d3","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/75f10fb4-0757-47aa-b420-0fd5352dc2d3"}],"metrics":[{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc7bc41e-daaa-4818-8674-1c35088a29a2","name":"monasca-api-congestion","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc7bc41e-daaa-4818-8674-1c35088a29a2"}]},"state_updated_timestamp":"2016-05-17T08:05:07.000Z","updated_timestamp":"2016-05-17T08:05:07.000Z","created_timestamp":"2016-05-17T07:59:20.000Z"},{"id":"83267777-98c1-4f22-88a1-e66a0ea58d10","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/83267777-98c1-4f22-88a1-e66a0ea58d10"}],"metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"25ae58a4-b653-444b-8a67-6f457eba0be9","name":"swift-overlapping-containers","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/25ae58a4-b653-444b-8a67-6f457eba0be9"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"832b1888-a27c-4f35-9de2-f0514a4b92cc","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/832b1888-a27c-4f35-9de2-f0514a4b92cc"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T10:32:03.000Z","updated_timestamp":"2016-05-17T10:32:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/ab8976ef-0d4d-4ab9-ad9d-5db5900e0518"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jcj0x"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-tzgvm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-geslk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-yjy3m"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jhs1b"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-iuhb8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-3ynev"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-56owg"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-mv7ok"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-4rpdm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"0f147ea9-47eb-41ce-a387-11b9735c43cb","name":"monasca-cpu-overload","severity":"MEDIUM","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/0f147ea9-47eb-41ce-a387-11b9735c43cb"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-12T06:42:40.000Z"},{"id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b024cf22-fc9a-4dd7-931c-e9215fa15340"}],"metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1415550d-6fe8-4dcc-b2ce-9fcdb22738b6","name":"monasca-disk-inodes-exhausted","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1415550d-6fe8-4dcc-b2ce-9fcdb22738b6"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-11T10:11:02.000Z"},{"id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b25feffa-f51b-49b2-8cd9-ca47a0d55982"}],"metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"663e48ec-5fb8-493c-9994-96f294ee67ab","name":"swift-overlapping-objects","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/663e48ec-5fb8-493c-9994-96f294ee67ab"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"c44ecaed-d644-4e9a-95ae-eb8d41b71b45","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/c44ecaed-d644-4e9a-95ae-eb8d41b71b45"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"02c03351-8819-4e5b-b518-d77aaca9ed9e","name":"swift-cpu-overload","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/02c03351-8819-4e5b-b518-d77aaca9ed9e"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/d0a7e91e-0dd7-4778-9e28-670b6174d6e8"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}}],"state":"ALARM","lifecycle_state":null,"link":null,"alarm_definition":{"id":"deea9c09-3d5f-4691-960a-c9e94cd0840f","name":"monasca-notification-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/deea9c09-3d5f-4691-960a-c9e94cd0840f"}]},"state_updated_timestamp":"2016-05-19T10:21:58.000Z","updated_timestamp":"2016-05-19T10:21:58.000Z","created_timestamp":"2016-05-12T09:41:34.000Z"},{"id":"dc2a1ab6-5016-4e1d-812d-07a75ea00b89","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/dc2a1ab6-5016-4e1d-812d-07a75ea00b89"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a44eade4-2f4d-47fe-a424-0e1d7969be3e","name":"monasca-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a44eade4-2f4d-47fe-a424-0e1d7969be3e"}]},"state_updated_timestamp":"2016-05-18T14:49:36.000Z","updated_timestamp":"2016-05-18T14:49:36.000Z","created_timestamp":"2016-05-18T14:46:49.000Z"},{"id":"e4f683a1-404e-45ab-b1d0-febe0543e7b0","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/e4f683a1-404e-45ab-b1d0-febe0543e7b0"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a4320933-3a88-4b2c-b10a-77418980d706","name":"swift-low-storage-alert-1tb","severity":"CRITICAL","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a4320933-3a88-4b2c-b10a-77418980d706"}]},"state_updated_timestamp":"2016-05-17T10:45:03.000Z","updated_timestamp":"2016-05-17T10:45:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"f585e411-b5f7-4073-905f-2499c4816e62","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/f585e411-b5f7-4073-905f-2499c4816e62"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"ad13df79-31dd-4486-8aac-d17d3c967dd4","name":"swift-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/ad13df79-31dd-4486-8aac-d17d3c967dd4"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:00 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/alarm-definitions/6882af86-a05e-44b4-b3c9-d1ed2ac4bfda body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:40:22 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:40:22 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/notification-methods/8d2fe3f5-d2d9-4fe1-a7da-1f8eed3b3c50 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmmWFwh3c1g-nrq-99vOGmO0vMRjggiGlqjlo8rAOtNkTUQ2J2_OFEO5w46HPUyOsfjOoHejRv1QUDmFDcav6cnKQCYR8sI-wvu8_E5z-OERY_RuEKnJOcK5Kuw2Tqc6N1n3LeSGrGtfholUO3HHAD1iPoP6D0qoznNcS5mbQ-VstEc9eCT3JKjccqKmeNbydi5M4d7gSas7NaFvdGRfbcRDHrTznA5arSjCYZvhRq6u70 response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:40:22 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:40:22 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/alarm_definition_crud.yml000066400000000000000000001032421476630434000303120ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack/v2.0/alarm-definitions body: encoding: UTF-8 string: '{"name":"average cpu usage in perc","match_by":["hostname"],"expression":"(avg(cpu.user_perc{hostname=devstack}) > 10)","description":"Definition for an important alarm"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 201 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '495' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"ok_actions": [], "description": "Definition for an important alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d", "rel": "self"}], "match_by": ["hostname"], "actions_enabled": "true", "id": "84a31656-a0c6-4ec7-a786-f2847eb73e9d", "severity": "LOW", "alarm_actions": [], "undetermined_actions": [], "name": "average cpu usage in perc", "deterministic": false, "expression": "(avg(cpu.user_perc{hostname=devstack}) > 10)"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarm-definitions body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '6998' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"ok_actions": [], "description": "Make sure that CPUs on Swift servers have sufficient spare capacity", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-cpu-overload", "deterministic": false, "expression": "avg(cpu.idle_perc{service=object-store}, 300) < 20.0"}, {"ok_actions": [], "description": "", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "severity": "MEDIUM", "alarm_actions": [], "undetermined_actions": [], "name": "hgws", "deterministic": false, "expression": "avg (cpu.idle_perc, 60) < 120"}, {"ok_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "description": "Make sure that Monasca agents can emit metrics within few seconds", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/447e8043-c603-48e2-bd7b-6599aa1ca7d4", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "447e8043-c603-48e2-bd7b-6599aa1ca7d4", "severity": "HIGH", "alarm_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "undetermined_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "name": "monasca-api-congestion", "deterministic": false, "expression": "avg(monasca.emit_time_sec{component=monasca-agent,service=monitoring}, 300) > 2"}, {"ok_actions": [], "description": "Alarms on overlapping objects which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-objects", "deterministic": false, "expression": "min(swift.dispersion.object.overlapping, 120) > 0"}, {"ok_actions": [], "description": "Critical alarm free storage < 1 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "severity": "CRITICAL", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-alert-1tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 1000000000000"}, {"ok_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "description": "temporary monasca fitness test alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/64c8c42a-9089-4a71-a743-58479c8fa3a2", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "64c8c42a-9089-4a71-a743-58479c8fa3a2", "severity": "LOW", "alarm_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "undetermined_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "name": "test.monasca.fitness.alarm.20160825135325", "deterministic": false, "expression": "test.monasca.fitness > 0.0"}, {"ok_actions": [], "description": "Definition for an important alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d", "rel": "self"}], "match_by": ["hostname"], "actions_enabled": true, "id": "84a31656-a0c6-4ec7-a786-f2847eb73e9d", "severity": "LOW", "alarm_actions": [], "undetermined_actions": [], "name": "average cpu usage in perc", "deterministic": false, "expression": "(avg(cpu.user_perc{hostname=devstack}) > 10)"}, {"ok_actions": [], "description": "Make sure that Swift nodes run in memory", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-no-mem-swapping", "deterministic": false, "expression": "avg(mem.swap_used_mb{service=object-store},300) > 0"}, {"ok_actions": [], "description": "Alarms on overlapping containers which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-containers", "deterministic": false, "expression": "min(swift.dispersion.container.overlapping,120) > 0"}, {"ok_actions": [], "description": "Some swift storage drives are unmounted. Run swift-recon --unmounted to get details", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/b896b04d-c7e9-40de-be85-0b03f008b2ca", "rel": "self"}], "match_by": ["service", "systemtype"], "actions_enabled": true, "id": "b896b04d-c7e9-40de-be85-0b03f008b2ca", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disks-unmounted", "deterministic": false, "expression": "swift.cluster.drives.unmounted > 0"}, {"ok_actions": [], "description": "Make sure that we do not run out of disk space", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disk-full", "deterministic": false, "expression": "max(disk.space_used_perc{service=object-store}, 300) > 75.0"}, {"ok_actions": [], "description": "Alarm on mismatched rings", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "match_by": ["hostname", "service", "systemtype"], "actions_enabled": true, "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-mismatched-rings", "deterministic": false, "expression": "min(swift.cluster.md5.ring.not_matched, 120) > 0"}, {"ok_actions": [], "description": "Warn free storage < 10 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-warn-10tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 10000000000000"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarm-definitions body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '6998' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"ok_actions": [], "description": "Make sure that CPUs on Swift servers have sufficient spare capacity", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-cpu-overload", "deterministic": false, "expression": "avg(cpu.idle_perc{service=object-store}, 300) < 20.0"}, {"ok_actions": [], "description": "", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "severity": "MEDIUM", "alarm_actions": [], "undetermined_actions": [], "name": "hgws", "deterministic": false, "expression": "avg (cpu.idle_perc, 60) < 120"}, {"ok_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "description": "Make sure that Monasca agents can emit metrics within few seconds", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/447e8043-c603-48e2-bd7b-6599aa1ca7d4", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "447e8043-c603-48e2-bd7b-6599aa1ca7d4", "severity": "HIGH", "alarm_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "undetermined_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "name": "monasca-api-congestion", "deterministic": false, "expression": "avg(monasca.emit_time_sec{component=monasca-agent,service=monitoring}, 300) > 2"}, {"ok_actions": [], "description": "Alarms on overlapping objects which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-objects", "deterministic": false, "expression": "min(swift.dispersion.object.overlapping, 120) > 0"}, {"ok_actions": [], "description": "Critical alarm free storage < 1 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "severity": "CRITICAL", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-alert-1tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 1000000000000"}, {"ok_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "description": "temporary monasca fitness test alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/64c8c42a-9089-4a71-a743-58479c8fa3a2", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "64c8c42a-9089-4a71-a743-58479c8fa3a2", "severity": "LOW", "alarm_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "undetermined_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "name": "test.monasca.fitness.alarm.20160825135325", "deterministic": false, "expression": "test.monasca.fitness > 0.0"}, {"ok_actions": [], "description": "Definition for an important alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d", "rel": "self"}], "match_by": ["hostname"], "actions_enabled": true, "id": "84a31656-a0c6-4ec7-a786-f2847eb73e9d", "severity": "LOW", "alarm_actions": [], "undetermined_actions": [], "name": "average cpu usage in perc", "deterministic": false, "expression": "(avg(cpu.user_perc{hostname=devstack}) > 10)"}, {"ok_actions": [], "description": "Make sure that Swift nodes run in memory", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-no-mem-swapping", "deterministic": false, "expression": "avg(mem.swap_used_mb{service=object-store},300) > 0"}, {"ok_actions": [], "description": "Alarms on overlapping containers which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-containers", "deterministic": false, "expression": "min(swift.dispersion.container.overlapping,120) > 0"}, {"ok_actions": [], "description": "Some swift storage drives are unmounted. Run swift-recon --unmounted to get details", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/b896b04d-c7e9-40de-be85-0b03f008b2ca", "rel": "self"}], "match_by": ["service", "systemtype"], "actions_enabled": true, "id": "b896b04d-c7e9-40de-be85-0b03f008b2ca", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disks-unmounted", "deterministic": false, "expression": "swift.cluster.drives.unmounted > 0"}, {"ok_actions": [], "description": "Make sure that we do not run out of disk space", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disk-full", "deterministic": false, "expression": "max(disk.space_used_perc{service=object-store}, 300) > 75.0"}, {"ok_actions": [], "description": "Alarm on mismatched rings", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "match_by": ["hostname", "service", "systemtype"], "actions_enabled": true, "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-mismatched-rings", "deterministic": false, "expression": "min(swift.cluster.md5.ring.not_matched, 120) > 0"}, {"ok_actions": [], "description": "Warn free storage < 10 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-warn-10tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 10000000000000"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: post uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: UTF-8 string: '{"name":"important notification","type":"EMAIL","address":"admin@example.com"}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 201 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '280' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"name": "important notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/d81fb3e3-8fab-4b34-a34a-2843cd1609c1", "rel": "self"}], "period": 0, "address": "admin@example.com", "type": "EMAIL", "id": "d81fb3e3-8fab-4b34-a34a-2843cd1609c1"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: put uri: http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d body: encoding: UTF-8 string: '{"name":"CPU percent greater than 15","match_by":["hostname"],"description":"Replaced alarm-definition expression","expression":"(avg(cpu.user_perc{hostname=devstack}) > 15)","severity":"LOW","alarm_actions":["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"],"ok_actions":["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"],"undetermined_actions":["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"],"actions_enabled":true}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '649' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"ok_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "description": "Replaced alarm-definition expression", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d/84a31656-a0c6-4ec7-a786-f2847eb73e9d", "rel": "self"}], "match_by": ["hostname"], "actions_enabled": true, "id": "84a31656-a0c6-4ec7-a786-f2847eb73e9d", "name": "CPU percent greater than 15", "alarm_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "undetermined_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "severity": "LOW", "deterministic": false, "expression": "(avg(cpu.user_perc{hostname=devstack}) > 15)"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: patch uri: http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d body: encoding: UTF-8 string: '{"description":"An updated alarm-definition."}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '641' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"ok_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "description": "An updated alarm-definition.", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d/84a31656-a0c6-4ec7-a786-f2847eb73e9d", "rel": "self"}], "match_by": ["hostname"], "actions_enabled": true, "id": "84a31656-a0c6-4ec7-a786-f2847eb73e9d", "name": "CPU percent greater than 15", "alarm_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "undetermined_actions": ["d81fb3e3-8fab-4b34-a34a-2843cd1609c1"], "severity": "LOW", "deterministic": false, "expression": "(avg(cpu.user_perc{hostname=devstack}) > 15)"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/alarm-definitions/84a31656-a0c6-4ec7-a786-f2847eb73e9d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:30 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:30 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarm-definitions body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:31 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '6503' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"ok_actions": [], "description": "Make sure that CPUs on Swift servers have sufficient spare capacity", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/3cd94f89-c3de-47dd-9b31-01db493ac229", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "3cd94f89-c3de-47dd-9b31-01db493ac229", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-cpu-overload", "deterministic": false, "expression": "avg(cpu.idle_perc{service=object-store}, 300) < 20.0"}, {"ok_actions": [], "description": "", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "43b7e277-00a7-40d4-b877-cf2a3e2ef55f", "severity": "MEDIUM", "alarm_actions": [], "undetermined_actions": [], "name": "hgws", "deterministic": false, "expression": "avg (cpu.idle_perc, 60) < 120"}, {"ok_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "description": "Make sure that Monasca agents can emit metrics within few seconds", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/447e8043-c603-48e2-bd7b-6599aa1ca7d4", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "447e8043-c603-48e2-bd7b-6599aa1ca7d4", "severity": "HIGH", "alarm_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "undetermined_actions": ["ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"], "name": "monasca-api-congestion", "deterministic": false, "expression": "avg(monasca.emit_time_sec{component=monasca-agent,service=monitoring}, 300) > 2"}, {"ok_actions": [], "description": "Alarms on overlapping objects which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e0fa1bf-8799-48b0-bd2a-ed7255e6d13b", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-objects", "deterministic": false, "expression": "min(swift.dispersion.object.overlapping, 120) > 0"}, {"ok_actions": [], "description": "Critical alarm free storage < 1 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/4e6a0c21-136a-4f31-9f89-6af70aaaa669", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "4e6a0c21-136a-4f31-9f89-6af70aaaa669", "severity": "CRITICAL", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-alert-1tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 1000000000000"}, {"ok_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "description": "temporary monasca fitness test alarm", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/64c8c42a-9089-4a71-a743-58479c8fa3a2", "rel": "self"}], "match_by": [], "actions_enabled": true, "id": "64c8c42a-9089-4a71-a743-58479c8fa3a2", "severity": "LOW", "alarm_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "undetermined_actions": ["19c20ad3-7a39-48ba-82eb-92f681dbc47f"], "name": "test.monasca.fitness.alarm.20160825135325", "deterministic": false, "expression": "test.monasca.fitness > 0.0"}, {"ok_actions": [], "description": "Make sure that Swift nodes run in memory", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/9edae523-a26e-4c50-85cd-739763b34ea9", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "9edae523-a26e-4c50-85cd-739763b34ea9", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-no-mem-swapping", "deterministic": false, "expression": "avg(mem.swap_used_mb{service=object-store},300) > 0"}, {"ok_actions": [], "description": "Alarms on overlapping containers which point to cluster inconsistencies", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/a30102c8-c26d-4852-8740-88e3dee2a6c5", "rel": "self"}], "match_by": ["service"], "actions_enabled": false, "id": "a30102c8-c26d-4852-8740-88e3dee2a6c5", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-overlapping-containers", "deterministic": false, "expression": "min(swift.dispersion.container.overlapping,120) > 0"}, {"ok_actions": [], "description": "Some swift storage drives are unmounted. Run swift-recon --unmounted to get details", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/b896b04d-c7e9-40de-be85-0b03f008b2ca", "rel": "self"}], "match_by": ["service", "systemtype"], "actions_enabled": true, "id": "b896b04d-c7e9-40de-be85-0b03f008b2ca", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disks-unmounted", "deterministic": false, "expression": "swift.cluster.drives.unmounted > 0"}, {"ok_actions": [], "description": "Make sure that we do not run out of disk space", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/c27c2517-622c-442c-bc6d-5198f4dea855", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "c27c2517-622c-442c-bc6d-5198f4dea855", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-disk-full", "deterministic": false, "expression": "max(disk.space_used_perc{service=object-store}, 300) > 75.0"}, {"ok_actions": [], "description": "Alarm on mismatched rings", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/d5b676e7-dd56-499e-a8a1-d605acebc092", "rel": "self"}], "match_by": ["hostname", "service", "systemtype"], "actions_enabled": true, "id": "d5b676e7-dd56-499e-a8a1-d605acebc092", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-mismatched-rings", "deterministic": false, "expression": "min(swift.cluster.md5.ring.not_matched, 120) > 0"}, {"ok_actions": [], "description": "Warn free storage < 10 TB", "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions/f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "rel": "self"}], "match_by": ["service"], "actions_enabled": true, "id": "f5af3b88-2d49-4b82-84ec-c84ab9b0c090", "severity": "HIGH", "alarm_actions": [], "undetermined_actions": [], "name": "swift-low-storage-warn-10tb", "deterministic": false, "expression": "min(swift.cluster.storage.free_bytes, 900) < 10000000000000"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/alarm-definitions", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:31 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/notification-methods/d81fb3e3-8fab-4b34-a34a-2843cd1609c1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qop2jmMkcs11magiBeUyXcm7Uzw77hUEOSDOpj_YXRsDkPk2OOheXhsAjb6UglUSdiRE1HZDAeQ9FUpVlal8CRePhsSdgtXPgEgKFSGrtf-G2fG3JfqByLvUKmm4fUaRtYzeAaGiMb3ZEMvTFza6wnkB2tlOw6SFaWZTR4mVUDmHngLf5wVNGvtgYif9AfvQf-4Z3jFuI_tlR7EJb5_xlabcMtIqN89e4miOezxnRu4Htw response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:31 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:31 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/alarm_state_history_all.yml000066400000000000000000014704741476630434000307150ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms/state-history body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:17:01 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/state-history"}],"elements":[{"id":"2016-05-11T10:15:03.772Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-11T10:15:03.772Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-11T19:03:20.305Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"OK","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0","reason_data":"{}","timestamp":"2016-05-11T19:03:20.305Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-12T06:20:39.066Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-12T06:20:39.066Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-12T06:45:40.655Z","alarm_id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(cpu.idle_perc{service=monitoring}, 180) < 20.0 with the values: [89.69999999999999]","reason_data":"{}","timestamp":"2016-05-12T06:45:40.655Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"cpu.idle_perc","dimensions":{"service":"monitoring"},"operator":"LT","threshold":20.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[89.69999999999999]}]},{"id":"2016-05-12T11:33:32.544Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-12T11:33:32.544Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-12T14:23:38.981Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-12T14:23:38.981Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-12T15:25:13.055Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"ALARM","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0","reason_data":"{}","timestamp":"2016-05-12T15:25:13.055Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-12T15:33:43.248Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-12T15:33:43.248Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-13T06:43:59.933Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-13T06:43:59.933Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-13T08:26:35.919Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-13T08:26:35.919Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-13T08:56:37.914Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-13T08:56:37.914Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-13T08:57:35.495Z","alarm_id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.inode_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-13T08:57:35.495Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.inode_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-13T08:57:35.591Z","alarm_id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-3ynev"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jcj0x"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-iuhb8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jhs1b"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(cpu.idle_perc{service=monitoring}, 180) < 20.0 with the values: [94.5390804597701]","reason_data":"{}","timestamp":"2016-05-13T08:57:35.591Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"cpu.idle_perc","dimensions":{"service":"monitoring"},"operator":"LT","threshold":20.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[94.5390804597701]}]},{"id":"2016-05-13T15:51:05.037Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"ALARM","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0","reason_data":"{}","timestamp":"2016-05-13T15:51:05.037Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-17T08:01:07.797Z","alarm_id":"83267777-98c1-4f22-88a1-e66a0ea58d10","metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.dispersion.container.overlapping, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T08:01:07.797Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.container.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-17T08:01:07.798Z","alarm_id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.dispersion.object.overlapping, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T08:01:07.798Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.object.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-17T08:01:07.866Z","alarm_id":"05db9a23-cde6-4160-a759-76596b28013e","metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.cluster.md5.ring.not_matched, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T08:01:07.866Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.cluster.md5.ring.not_matched","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-17T08:04:07.798Z","alarm_id":"3f69fba9-61f9-422b-9140-6debc3710bda","metrics":[{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(mem.swap_used_mb{service=object-store}, 300) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T08:04:07.798Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"mem.swap_used_mb","dimensions":{"service":"object-store"},"operator":"GT","threshold":0.0,"period":300,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-17T08:04:07.799Z","alarm_id":"f585e411-b5f7-4073-905f-2499c4816e62","metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.space_used_perc{service=object-store}, 300) > 75.0 with the values: [34.2]","reason_data":"{}","timestamp":"2016-05-17T08:04:07.799Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.space_used_perc","dimensions":{"service":"object-store"},"operator":"GT","threshold":75.0,"period":300,"periods":1},"sub_alarm_state":"OK","current_values":[34.2]}]},{"id":"2016-05-17T08:04:07.799Z","alarm_id":"c44ecaed-d644-4e9a-95ae-eb8d41b71b45","metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(cpu.idle_perc{service=object-store}, 300) < 20.0 with the values: [99.0]","reason_data":"{}","timestamp":"2016-05-17T08:04:07.799Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"cpu.idle_perc","dimensions":{"service":"object-store"},"operator":"LT","threshold":20.0,"period":300,"periods":1},"sub_alarm_state":"OK","current_values":[99.0]}]},{"id":"2016-05-17T08:05:07.793Z","alarm_id":"75f10fb4-0757-47aa-b420-0fd5352dc2d3","metrics":[{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: avg(monasca.emit_time_sec{component=monasca-agent, service=monitoring}, 300) > 2.0 with the values: [0.02873389720916748]","reason_data":"{}","timestamp":"2016-05-17T08:05:07.793Z","sub_alarms":[{"sub_alarm_expression":{"function":"AVG","metric_name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring"},"operator":"GT","threshold":2.0,"period":300,"periods":1},"sub_alarm_state":"OK","current_values":[0.02873389720916748]}]},{"id":"2016-05-17T08:14:07.263Z","alarm_id":"3b80e16c-9c6a-40dd-b2c0-fea061032e35","metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.cluster.storage.free_bytes, 900) < 10000000000000.0 with the values: [2.48533365018624E14]","reason_data":"{}","timestamp":"2016-05-17T08:14:07.263Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.cluster.storage.free_bytes","dimensions":{},"operator":"LT","threshold":1.0E13,"period":900,"periods":1},"sub_alarm_state":"OK","current_values":[2.48533365018624E14]}]},{"id":"2016-05-17T10:32:03.688Z","alarm_id":"832b1888-a27c-4f35-9de2-f0514a4b92cc","metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.cluster.md5.ring.not_matched, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T10:32:03.688Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.cluster.md5.ring.not_matched","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-17T10:45:03.575Z","alarm_id":"e4f683a1-404e-45ab-b1d0-febe0543e7b0","metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.cluster.storage.free_bytes, 900) < 1000000000000.0 with the values: [2.4853336385536E14]","reason_data":"{}","timestamp":"2016-05-17T10:45:03.575Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.cluster.storage.free_bytes","dimensions":{},"operator":"LT","threshold":1.0E12,"period":900,"periods":1},"sub_alarm_state":"OK","current_values":[2.4853336385536E14]}]},{"id":"2016-05-18T14:49:36.623Z","alarm_id":"dc2a1ab6-5016-4e1d-812d-07a75ea00b89","metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(disk.space_used_perc{service=monitoring}, 180) > 75.0 with the values: []","reason_data":"{}","timestamp":"2016-05-18T14:49:36.623Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"disk.space_used_perc","dimensions":{"service":"monitoring"},"operator":"GT","threshold":75.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[]}]},{"id":"2016-05-18T18:55:37.137Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-18T18:55:37.137Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-19T09:06:37.745Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}}],"old_state":"ALARM","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0","reason_data":"{}","timestamp":"2016-05-19T09:06:37.745Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-19T09:11:38.682Z","alarm_id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"OK","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: min(swift.dispersion.object.overlapping, 120) > 0.0","reason_data":"{}","timestamp":"2016-05-19T09:11:38.682Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.object.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-19T09:11:38.682Z","alarm_id":"83267777-98c1-4f22-88a1-e66a0ea58d10","metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"OK","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: min(swift.dispersion.container.overlapping, 120) > 0.0","reason_data":"{}","timestamp":"2016-05-19T09:11:38.682Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.container.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-19T09:52:00.141Z","alarm_id":"83267777-98c1-4f22-88a1-e66a0ea58d10","metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.dispersion.container.overlapping, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-19T09:52:00.141Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.container.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-19T09:52:00.275Z","alarm_id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.dispersion.object.overlapping, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-19T09:52:00.275Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.dispersion.object.overlapping","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]},{"id":"2016-05-19T09:52:47.928Z","alarm_id":"2a4e638f-6bf8-4bec-bbdb-878c796a32eb","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"influxdb","process_name":"influxd","service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: max(process.pid_count{component=influxdb, service=monitoring}, 180) < 1.0 with the values: [3.0]","reason_data":"{}","timestamp":"2016-05-19T09:52:47.928Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"influxdb","service":"monitoring"},"operator":"LT","threshold":1.0,"period":180,"periods":1},"sub_alarm_state":"OK","current_values":[3.0]}]},{"id":"2016-05-19T09:53:39.039Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-19T09:53:39.039Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]},{"id":"2016-05-19T10:20:00.022Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}}],"old_state":"ALARM","new_state":"UNDETERMINED","reason":"No data was present for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0","reason_data":"{}","timestamp":"2016-05-19T10:20:00.022Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"UNDETERMINED","current_values":[]}]},{"id":"2016-05-19T10:21:58.865Z","alarm_id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}}],"old_state":"UNDETERMINED","new_state":"ALARM","reason":"Thresholds were exceeded for the sub-alarms: max(process.pid_count{component=monasca-notification, service=monitoring}) < 6.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-19T10:21:58.865Z","sub_alarms":[{"sub_alarm_expression":{"function":"MAX","metric_name":"process.pid_count","dimensions":{"component":"monasca-notification","service":"monitoring"},"operator":"LT","threshold":6.0,"period":60,"periods":1},"sub_alarm_state":"ALARM","current_values":[0.0]}]}]}' http_version: recorded_at: Fri, 20 May 2016 15:17:00 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms?name=cpu.user_perc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:17:01 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms?name=cpu.user_perc"}],"elements":[{"id":"05db9a23-cde6-4160-a759-76596b28013e","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/05db9a23-cde6-4160-a759-76596b28013e"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T08:01:07.000Z","updated_timestamp":"2016-05-17T08:01:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"2a4e638f-6bf8-4bec-bbdb-878c796a32eb","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/2a4e638f-6bf8-4bec-bbdb-878c796a32eb"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"influxdb","process_name":"influxd","service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1a26608b-2895-4e82-90ef-a1deccc3382c","name":"monasca-influxdb-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1a26608b-2895-4e82-90ef-a1deccc3382c"}]},"state_updated_timestamp":"2016-05-19T09:52:47.000Z","updated_timestamp":"2016-05-19T09:52:47.000Z","created_timestamp":"2016-05-19T09:49:06.000Z"},{"id":"3b80e16c-9c6a-40dd-b2c0-fea061032e35","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3b80e16c-9c6a-40dd-b2c0-fea061032e35"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"4aa5d687-a11c-4556-a30f-f42e6cd8fefd","name":"swift-low-storage-warn-10tb","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/4aa5d687-a11c-4556-a30f-f42e6cd8fefd"}]},"state_updated_timestamp":"2016-05-17T08:14:07.000Z","updated_timestamp":"2016-05-17T08:14:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"3f69fba9-61f9-422b-9140-6debc3710bda","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3f69fba9-61f9-422b-9140-6debc3710bda"}],"metrics":[{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"48e99108-112e-472b-a97e-ede4b1f9ca55","name":"swift-no-mem-swapping","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/48e99108-112e-472b-a97e-ede4b1f9ca55"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"75f10fb4-0757-47aa-b420-0fd5352dc2d3","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/75f10fb4-0757-47aa-b420-0fd5352dc2d3"}],"metrics":[{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc7bc41e-daaa-4818-8674-1c35088a29a2","name":"monasca-api-congestion","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc7bc41e-daaa-4818-8674-1c35088a29a2"}]},"state_updated_timestamp":"2016-05-17T08:05:07.000Z","updated_timestamp":"2016-05-17T08:05:07.000Z","created_timestamp":"2016-05-17T07:59:20.000Z"},{"id":"83267777-98c1-4f22-88a1-e66a0ea58d10","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/83267777-98c1-4f22-88a1-e66a0ea58d10"}],"metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"25ae58a4-b653-444b-8a67-6f457eba0be9","name":"swift-overlapping-containers","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/25ae58a4-b653-444b-8a67-6f457eba0be9"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"832b1888-a27c-4f35-9de2-f0514a4b92cc","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/832b1888-a27c-4f35-9de2-f0514a4b92cc"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T10:32:03.000Z","updated_timestamp":"2016-05-17T10:32:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/ab8976ef-0d4d-4ab9-ad9d-5db5900e0518"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jcj0x"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-tzgvm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-geslk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-yjy3m"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jhs1b"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-iuhb8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-3ynev"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-56owg"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-mv7ok"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-4rpdm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"0f147ea9-47eb-41ce-a387-11b9735c43cb","name":"monasca-cpu-overload","severity":"MEDIUM","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/0f147ea9-47eb-41ce-a387-11b9735c43cb"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-12T06:42:40.000Z"},{"id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b024cf22-fc9a-4dd7-931c-e9215fa15340"}],"metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1415550d-6fe8-4dcc-b2ce-9fcdb22738b6","name":"monasca-disk-inodes-exhausted","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1415550d-6fe8-4dcc-b2ce-9fcdb22738b6"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-11T10:11:02.000Z"},{"id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b25feffa-f51b-49b2-8cd9-ca47a0d55982"}],"metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"663e48ec-5fb8-493c-9994-96f294ee67ab","name":"swift-overlapping-objects","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/663e48ec-5fb8-493c-9994-96f294ee67ab"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"c44ecaed-d644-4e9a-95ae-eb8d41b71b45","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/c44ecaed-d644-4e9a-95ae-eb8d41b71b45"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"02c03351-8819-4e5b-b518-d77aaca9ed9e","name":"swift-cpu-overload","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/02c03351-8819-4e5b-b518-d77aaca9ed9e"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/d0a7e91e-0dd7-4778-9e28-670b6174d6e8"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}}],"state":"ALARM","lifecycle_state":null,"link":null,"alarm_definition":{"id":"deea9c09-3d5f-4691-960a-c9e94cd0840f","name":"monasca-notification-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/deea9c09-3d5f-4691-960a-c9e94cd0840f"}]},"state_updated_timestamp":"2016-05-19T10:21:58.000Z","updated_timestamp":"2016-05-19T10:21:58.000Z","created_timestamp":"2016-05-12T09:41:34.000Z"},{"id":"dc2a1ab6-5016-4e1d-812d-07a75ea00b89","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/dc2a1ab6-5016-4e1d-812d-07a75ea00b89"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a44eade4-2f4d-47fe-a424-0e1d7969be3e","name":"monasca-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a44eade4-2f4d-47fe-a424-0e1d7969be3e"}]},"state_updated_timestamp":"2016-05-18T14:49:36.000Z","updated_timestamp":"2016-05-18T14:49:36.000Z","created_timestamp":"2016-05-18T14:46:49.000Z"},{"id":"e4f683a1-404e-45ab-b1d0-febe0543e7b0","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/e4f683a1-404e-45ab-b1d0-febe0543e7b0"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a4320933-3a88-4b2c-b10a-77418980d706","name":"swift-low-storage-alert-1tb","severity":"CRITICAL","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a4320933-3a88-4b2c-b10a-77418980d706"}]},"state_updated_timestamp":"2016-05-17T10:45:03.000Z","updated_timestamp":"2016-05-17T10:45:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"f585e411-b5f7-4073-905f-2499c4816e62","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/f585e411-b5f7-4073-905f-2499c4816e62"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"ad13df79-31dd-4486-8aac-d17d3c967dd4","name":"swift-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/ad13df79-31dd-4486-8aac-d17d3c967dd4"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"}]}' http_version: recorded_at: Fri, 20 May 2016 15:17:01 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:17:01 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms"}],"elements":[{"id":"05db9a23-cde6-4160-a759-76596b28013e","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/05db9a23-cde6-4160-a759-76596b28013e"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T08:01:07.000Z","updated_timestamp":"2016-05-17T08:01:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"2a4e638f-6bf8-4bec-bbdb-878c796a32eb","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/2a4e638f-6bf8-4bec-bbdb-878c796a32eb"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"influxdb","process_name":"influxd","service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1a26608b-2895-4e82-90ef-a1deccc3382c","name":"monasca-influxdb-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1a26608b-2895-4e82-90ef-a1deccc3382c"}]},"state_updated_timestamp":"2016-05-19T09:52:47.000Z","updated_timestamp":"2016-05-19T09:52:47.000Z","created_timestamp":"2016-05-19T09:49:06.000Z"},{"id":"3b80e16c-9c6a-40dd-b2c0-fea061032e35","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3b80e16c-9c6a-40dd-b2c0-fea061032e35"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"4aa5d687-a11c-4556-a30f-f42e6cd8fefd","name":"swift-low-storage-warn-10tb","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/4aa5d687-a11c-4556-a30f-f42e6cd8fefd"}]},"state_updated_timestamp":"2016-05-17T08:14:07.000Z","updated_timestamp":"2016-05-17T08:14:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"3f69fba9-61f9-422b-9140-6debc3710bda","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/3f69fba9-61f9-422b-9140-6debc3710bda"}],"metrics":[{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"mem.swap_used_mb","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"48e99108-112e-472b-a97e-ede4b1f9ca55","name":"swift-no-mem-swapping","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/48e99108-112e-472b-a97e-ede4b1f9ca55"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"75f10fb4-0757-47aa-b420-0fd5352dc2d3","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/75f10fb4-0757-47aa-b420-0fd5352dc2d3"}],"metrics":[{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"monasca.emit_time_sec","dimensions":{"component":"monasca-agent","service":"monitoring","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc7bc41e-daaa-4818-8674-1c35088a29a2","name":"monasca-api-congestion","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc7bc41e-daaa-4818-8674-1c35088a29a2"}]},"state_updated_timestamp":"2016-05-17T08:05:07.000Z","updated_timestamp":"2016-05-17T08:05:07.000Z","created_timestamp":"2016-05-17T07:59:20.000Z"},{"id":"83267777-98c1-4f22-88a1-e66a0ea58d10","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/83267777-98c1-4f22-88a1-e66a0ea58d10"}],"metrics":[{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.container.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"25ae58a4-b653-444b-8a67-6f457eba0be9","name":"swift-overlapping-containers","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/25ae58a4-b653-444b-8a67-6f457eba0be9"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"832b1888-a27c-4f35-9de2-f0514a4b92cc","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/832b1888-a27c-4f35-9de2-f0514a4b92cc"}],"metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"dc4ea079-f963-4484-9df7-fe700a80689a","name":"swift-mismatched-rings","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/dc4ea079-f963-4484-9df7-fe700a80689a"}]},"state_updated_timestamp":"2016-05-17T10:32:03.000Z","updated_timestamp":"2016-05-17T10:32:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"ab8976ef-0d4d-4ab9-ad9d-5db5900e0518","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/ab8976ef-0d4d-4ab9-ad9d-5db5900e0518"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-h56uw"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jcj0x"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-tzgvm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-geslk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-yjy3m"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-jhs1b"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-vdn3p"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-iuhb8"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-3ynev"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-api","hostname":"monasca-api-56owg"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-mv7ok"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"grafana","hostname":"monasca-grafana-4rpdm"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"monitoring","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"0f147ea9-47eb-41ce-a387-11b9735c43cb","name":"monasca-cpu-overload","severity":"MEDIUM","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/0f147ea9-47eb-41ce-a387-11b9735c43cb"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-12T06:42:40.000Z"},{"id":"b024cf22-fc9a-4dd7-931c-e9215fa15340","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b024cf22-fc9a-4dd7-931c-e9215fa15340"}],"metrics":[{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jhs1b","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_17","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-icb2z","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-r91va","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-2-qtb9a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-50cj4","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-nmhyx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-l6sg4","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-lr9yv","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-pe91y","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-v49bf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-9tog3","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-3-emfbr","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-ma0ao","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-vdn3p","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-4vnf8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4o5fr","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-vl6pk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-94pf6","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-47rch","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-3ynev","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-0i8zu","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-7jd5d","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-mv7ok","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-yjy3m","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper","hostname":"monasca-zookeeper-1-3gpww","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-r1ef9","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-iuhb8","mount_point":"/"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-jcj0x","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-k2uop","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-b7isp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-h56uw","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.inode_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"1415550d-6fe8-4dcc-b2ce-9fcdb22738b6","name":"monasca-disk-inodes-exhausted","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/1415550d-6fe8-4dcc-b2ce-9fcdb22738b6"}]},"state_updated_timestamp":"2016-05-13T08:57:35.000Z","updated_timestamp":"2016-05-13T08:57:35.000Z","created_timestamp":"2016-05-11T10:11:02.000Z"},{"id":"b25feffa-f51b-49b2-8cd9-ca47a0d55982","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/b25feffa-f51b-49b2-8cd9-ca47a0d55982"}],"metrics":[{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.dispersion.object.overlapping","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"663e48ec-5fb8-493c-9994-96f294ee67ab","name":"swift-overlapping-objects","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/663e48ec-5fb8-493c-9994-96f294ee67ab"}]},"state_updated_timestamp":"2016-05-19T09:52:00.000Z","updated_timestamp":"2016-05-19T09:52:00.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"c44ecaed-d644-4e9a-95ae-eb8d41b71b45","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/c44ecaed-d644-4e9a-95ae-eb8d41b71b45"}],"metrics":[{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"cpu.idle_perc","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"02c03351-8819-4e5b-b518-d77aaca9ed9e","name":"swift-cpu-overload","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/02c03351-8819-4e5b-b518-d77aaca9ed9e"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"},{"id":"d0a7e91e-0dd7-4778-9e28-670b6174d6e8","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/d0a7e91e-0dd7-4778-9e28-670b6174d6e8"}],"metrics":[{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-3n9ni"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-47rch"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-ezw0r"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c"}},{"id":null,"name":"process.pid_count","dimensions":{"component":"monasca-notification","process_name":"monasca-notification","service":"monitoring","process_user":"mon-notification","systemtype":"monasca-notification","hostname":"monasca-notification-a3ir0"}}],"state":"ALARM","lifecycle_state":null,"link":null,"alarm_definition":{"id":"deea9c09-3d5f-4691-960a-c9e94cd0840f","name":"monasca-notification-down","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/deea9c09-3d5f-4691-960a-c9e94cd0840f"}]},"state_updated_timestamp":"2016-05-19T10:21:58.000Z","updated_timestamp":"2016-05-19T10:21:58.000Z","created_timestamp":"2016-05-12T09:41:34.000Z"},{"id":"dc2a1ab6-5016-4e1d-812d-07a75ea00b89","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/dc2a1ab6-5016-4e1d-812d-07a75ea00b89"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_15","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_16","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_32","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_34","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/var/lib/grafana"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_27","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/var/opt/influxdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-influxdb","hostname":"monasca-influxdb-u172a","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-3-mfizp","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_12","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/var/opt/zookeeper"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/data"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-56owg","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-14p7j","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-3-h8ssx","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-ab1wh","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-api","hostname":"monasca-api-geslk","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-notification","hostname":"monasca-notification-zr7fm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-qlzgj","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-tzgvm","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-vvg6h","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-gl797","mount_point":"/etc/resolv.conf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kibana","hostname":"monasca-kibana-r4rm7","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-data3-eq7e8","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-transformer-9ys5l","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-1xnn2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"overlay","systemtype":"monasca-logstash","hostname":"monasca-logstash-persister-rge36","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"kub_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-log-api","hostname":"monasca-log-api-bb003","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/dev/termination-log"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-persister","hostname":"monasca-persister-uswxd","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-s1y0f","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-6637t","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-storm-thresh","hostname":"monasca-storm-thresh-dxlki","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"mqueue","systemtype":"monasca-elasticsearch-cluster","hostname":"monasca-elasticsearch-client-zuqlc","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-notification","hostname":"monasca-notification-8ig1c","mount_point":"/etc/hosts"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"scaleout_19","systemtype":"monasca-kafka","hostname":"monasca-kafka-2-y5v9k","mount_point":"/var/opt/kafka"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-zookeeper-cluster","hostname":"monasca-zookeeper-2-na59e","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sdb2","systemtype":"monasca-kafka","hostname":"monasca-kafka-1-t3xxf","mount_point":"/etc/hostname"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"monasca-log-api","hostname":"monasca-log-api-xllp2","mount_point":"/openstack-kube"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"monitoring","device":"sda9","systemtype":"grafana","hostname":"monasca-grafana-4rpdm","mount_point":"/etc/hosts"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a44eade4-2f4d-47fe-a424-0e1d7969be3e","name":"monasca-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a44eade4-2f4d-47fe-a424-0e1d7969be3e"}]},"state_updated_timestamp":"2016-05-18T14:49:36.000Z","updated_timestamp":"2016-05-18T14:49:36.000Z","created_timestamp":"2016-05-18T14:46:49.000Z"},{"id":"e4f683a1-404e-45ab-b1d0-febe0543e7b0","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/e4f683a1-404e-45ab-b1d0-febe0543e7b0"}],"metrics":[{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}},{"id":null,"name":"swift.cluster.storage.free_bytes","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"a4320933-3a88-4b2c-b10a-77418980d706","name":"swift-low-storage-alert-1tb","severity":"CRITICAL","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/a4320933-3a88-4b2c-b10a-77418980d706"}]},"state_updated_timestamp":"2016-05-17T10:45:03.000Z","updated_timestamp":"2016-05-17T10:45:03.000Z","created_timestamp":"2016-05-17T10:29:03.000Z"},{"id":"f585e411-b5f7-4073-905f-2499c4816e62","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/f585e411-b5f7-4073-905f-2499c4816e62"}],"metrics":[{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-home","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/home"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdb","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdb"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-swift","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/rhel-swift"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdl","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdl"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdn","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdn"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdd","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdd"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"efivarfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/sys/firmware/efi/efivars"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-opt","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/opt"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc2","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdg","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdg"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdj","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdj"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rootfs","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdf","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdf"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdo","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdo"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"rhel-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdm","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdm"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"mqueue","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/dev/mqueue"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sda"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"systemd-1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-var","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/var"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-root","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdc1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot/efi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sde","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sde"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdh","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdh"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdk","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdk"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sdi","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/srv/node/sdi"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"binfmt_misc","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/proc/sys/fs/binfmt_misc"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"sda1","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/boot"}},{"id":null,"name":"disk.space_used_perc","dimensions":{"service":"object-store","device":"vg0-tmp","systemtype":"swift-proxy","hostname":"devstack.openstack.stack","mount_point":"/tmp"}}],"state":"OK","lifecycle_state":null,"link":null,"alarm_definition":{"id":"ad13df79-31dd-4486-8aac-d17d3c967dd4","name":"swift-disk-full","severity":"HIGH","links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarm-definitions/ad13df79-31dd-4486-8aac-d17d3c967dd4"}]},"state_updated_timestamp":"2016-05-17T08:04:07.000Z","updated_timestamp":"2016-05-17T08:04:07.000Z","created_timestamp":"2016-05-17T07:58:50.000Z"}]}' http_version: recorded_at: Fri, 20 May 2016 15:17:01 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/alarms/05db9a23-cde6-4160-a759-76596b28013e/state-history body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:17:01 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/alarms/05db9a23-cde6-4160-a759-76596b28013e/state-history"}],"elements":[{"id":"2016-05-17T08:01:07.866Z","alarm_id":"05db9a23-cde6-4160-a759-76596b28013e","metrics":[{"id":null,"name":"swift.cluster.md5.ring.not_matched","dimensions":{"service":"object-store","systemtype":"swift-proxy","hostname":"devstack.openstack.stack"}}],"old_state":"UNDETERMINED","new_state":"OK","reason":"The alarm threshold(s) have not been exceeded for the sub-alarms: min(swift.cluster.md5.ring.not_matched, 120) > 0.0 with the values: [0.0]","reason_data":"{}","timestamp":"2016-05-17T08:01:07.866Z","sub_alarms":[{"sub_alarm_expression":{"function":"MIN","metric_name":"swift.cluster.md5.ring.not_matched","dimensions":{},"operator":"GT","threshold":0.0,"period":120,"periods":1},"sub_alarm_state":"OK","current_values":[0.0]}]}]}' http_version: recorded_at: Fri, 20 May 2016 15:17:01 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/common_setup.yml000066400000000000000000000274711476630434000265120ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Fri, 20 May 2016 15:16:07 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 58f9614d13f74cc9865024446023941a Vary: - X-Auth-Token X-Openstack-Request-Id: - eq-83361282-8d29-40c2-b003-f34dd94f3c43 Content-Length: - '3295' Content-Type: - application/json body: encoding: UTF-8 string: '{ "token": { "domain": { "id": "default", "name": "Default" }, "methods": [ "password" ], "roles": [ { "id": "54beb701fd194cfc8600fe358b14e99c", "name": "admin" } ], "expires_at": "2016-05-03T15:00:45.703477Z", "catalog": [ { "endpoints": [], "type": "volumev2", "id": "00de3d649e324fcf8a66b362a3687b72", "name": "cinderv2" }, { "endpoints": [ { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "45841e0fac3e41eeb2561f5a85101279" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "bd93760c233c4b5793a6f82b0770d23b" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "f0cc2f6993964a7ba4f1a5e796ef950d" } ], "type": "ec2", "id": "35279a25c72d48a6ac0cab0e99b35459", "name": "ec2" }, { "endpoints": [ { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "9dd15d851abf45a68531ed4f4fc6c9d2" } ], "type": "object-store", "id": "4256c7122678438bade02e389d5c8682", "name": "swift" }, { "endpoints": [ { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "0e4d0840d6504ac0a6886eeae65f608c" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "21407a1201ab40ee9458c7fe981085ab" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "fdc5ce9024564ae0857721179d6b4940" } ], "type": "image", "id": "52860cd91fc542b19500b52985d7ecab", "name": "glance" }, { "endpoints": [ { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "0cb1a9d6f2b64620b5c3bd85b2413687" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "905e2c151f7642b7a80edb0f0739b3d0" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "b542d03c2e684a568615d7e1b87fd047" } ], "type": "network", "id": "847aa84eb33d471ea49d7f41a22ce2bb", "name": "neutron" }, { "endpoints": [], "type": "volume", "id": "8df5e244dea64adb83744c737a1edda6", "name": "cinder" }, { "endpoints": [ { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "209de9a4608548e4a87ff184cfbde55f" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "615d29cd6153444f814a2137ba723162" }, { "region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8831f6ecb09046b399df7b1ebe4e62a2" } ], "type": "identity", "id": "92e44f530d304e9593c847f244dc4dd0", "name": "keystone" }, { "endpoints": [], "type": "compute_legacy", "id": "ae6c4e3334dd4d2da991866a203dfe33", "name": "nova_legacy" }, { "endpoints": [], "type": "compute", "id": "c6cafaf090a040f696d2b0051d3372aa", "name": "nova" }, { "endpoints": [ { "url": "http://devstack.openstack.stack/v2.0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "4691ff2bdc484b0a9ebc5c778c9192cc" }, { "url": "http://devstack.openstack.stack/v2.0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "4ae82dfc86b04ff8987a01f612a16e87" }, { "url": "http://devstack.openstack.stack/v2.0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "19c236b52b66457787c1abba153a3474" } ], "type": "monitoring", "id": "0ec1f531eed24f47b9700ec153f48513", "name": "monasca" } ], "extras": {}, "user": { "domain": { "id": "default", "name": "Default" }, "id": "b5c55585b3fb43868ffe84ef2e197b3a", "name": "admin" }, "audit_ids": [ "-a5pa574Ry27YoJJHhWdeA" ], "issued_at": "2016-05-03T14:00:45.703534Z" } }' http_version: recorded_at: Fri, 20 May 2016 15:16:07 GMT fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/list_dimension_values.yml000066400000000000000000000102761476630434000303740ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/dimensions/names/values?dimension_name=hostname body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qorz7ntHahCReTKZNWR34v0oBZQXG3lrq0adj0Dpb5fMGiHezskjHu1IZLyZ4iGcwGNM1rF2p96ffOcJPyLkhoh5EhKhoMnjhqw0KRfKzWMHvCeI5mCMt6bun8XeTPKEQQjm1FsjaArbpewu7Sxh-4hOnyyKPTK5iVv5Jfi0LZSjFLrgYkE0jW3rvQeDgz1DMLelxxPwWKRhDmt280yo1pFmpBMJ-Lx305V8_WWAk8l_rg response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:33 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '3344' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"dimension_name": "hostname", "values": ["10.44.8.140", "10.44.8.148", "10.44.8.156", "10.44.8.172", "monasca-api-1yefj", "monasca-api-3u7ja", "monasca-api-41ko7", "monasca-api-4d3ah", "monasca-api-5knjk", "monasca-api-6enai", "monasca-api-6nf2q", "monasca-api-9fiza", "monasca-api-dpz8w", "monasca-api-ebnjw", "monasca-api-gr908", "monasca-api-i4y49", "monasca-api-ju6tq", "monasca-api-pst0m", "monasca-api-qlzve", "monasca-api-v6x1l", "monasca-api-wgbzg", "monasca-api-zl0yf", "monasca-es-client-v29xg", "monasca-influxdb-1a6cv", "monasca-influxdb-241n1", "monasca-influxdb-di7mv", "monasca-influxdb-jyum1", "monasca-kafka-1-5g7e4", "monasca-kafka-1-8yljp", "monasca-kafka-1-c82f8", "monasca-kafka-1-c9yb9", "monasca-kafka-1-d8dvd", "monasca-kafka-1-g3foy", "monasca-kafka-1-gcl99", "monasca-kafka-1-khn5k", "monasca-kafka-1-omoj0", "monasca-kafka-2-1ir3z", "monasca-kafka-2-dcbfy", "monasca-kafka-2-dd49f", "monasca-kafka-2-q8fz8", "monasca-kafka-2-vsn4p", "monasca-kafka-3-2z7rm", "monasca-kafka-3-81g0p", "monasca-kafka-3-dszs4", "monasca-kafka-3-ne5ih", "monasca-kafka-3-pjzio", "monasca-kibana-22ffh", "monasca-kibana-43kck", "monasca-kibana-cawjq", "monasca-kibana-if4vy", "monasca-kibana-j6ckg", "monasca-kibana-km278", "monasca-log-api-52nty", "monasca-log-api-62p7s", "monasca-log-api-al5in", "monasca-log-api-bo3nn", "monasca-log-api-o0qcd", "monasca-log-api-wivrc", "monasca-mysql-91tqz", "monasca-mysql-c3e6t", "monasca-mysql-hzxyv", "monasca-mysql-oxj36", "monasca-mysql-py89d", "monasca-mysql-qh6m9", "monasca-mysql-ut3zx", "monasca-notification-3mgbt", "monasca-notification-82jns", "monasca-notification-a8s6y", "monasca-notification-b0y4d", "monasca-notification-drkb0", "monasca-notification-idjjt", "monasca-notification-q0q0v", "monasca-notification-r2gmo", "monasca-notification-r4ssr", "monasca-notification-y0yoh", "monasca-persister-785pt", "monasca-persister-ae7ax", "monasca-persister-bmkuj", "monasca-persister-egg2p", "monasca-persister-rlr9q", "monasca-persister-t0udm", "monasca-storm-thresh-4vgfu", "monasca-storm-thresh-7a97c", "monasca-storm-thresh-aian0", "monasca-storm-thresh-jiwgx", "monasca-storm-thresh-ng977", "monasca-storm-thresh-pl8pu", "monasca-storm-thresh-qgm5m", "monasca-storm-thresh-t2c2g", "monasca-zookeeper-1-7q5e6", "monasca-zookeeper-1-jp573", "monasca-zookeeper-1-mpmo1", "monasca-zookeeper-1-q1qq7", "monasca-zookeeper-1-sz2vl", "monasca-zookeeper-1-z3px8", "monasca-zookeeper-2-5jqtk", "monasca-zookeeper-2-c3ufl", "monasca-zookeeper-2-kvuye", "monasca-zookeeper-2-xxxcq", "monasca-zookeeper-2-zerk6", "monasca-zookeeper-3-0kqdv", "monasca-zookeeper-3-16yhi", "monasca-zookeeper-3-bxozx", "monasca-zookeeper-3-wz2wf"], "id": "1527d86c32cac7858865cf2ae82bbfca14d06478"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics/dimensions/names/values?dimension_name=hostname", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:33 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/list_notification_method_types.yml000066400000000000000000000024301476630434000322730ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods/types body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoraLUDG5z8ipb6H-QNcpTj9ICrYqOVU_m0WrU4f6qazCeGZ8gc2cu9NlAr_txdNfkmo8HP9GTqG5hK5GofphxzVRzHs2-T4ZeYA00qdoS62x-aKbmTqbJUOuuHSl3ziJJH3Fr7LKwZ7sBI0EOjHG4lxucTY7OgfzLPOwCdMYy5HcieDE2qxAfDbCN-gAkaU6eAF8wJ9ICSxDwJ2wRq6ZXHPErIT2zyYY2CLmqF3Nb05hQ response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:31 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '184' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"type": "EMAIL"}, {"type": "PAGERDUTY"}, {"type": "WEBHOOK"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/types", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:31 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/metric_crud.yml000066400000000000000000000567471476630434000263120ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack/v2.0/metrics body: encoding: UTF-8 string: '{"name":"sample_metric_0","timestamp":1463757367143,"dimensions":{"key1":"value1"},"value":42,"value_meta":{"meta_key1":"meta_value1"}}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qotZOQ-yud5LU7YJTArhSf6esgjcc0rNZ7-1Pjg87IGm4InZycCGN_8fZVpphpCWEVwL3KYNIBCb0eWkQD4nRy9lcYKzOH4y1c8dodzJ6ETrurcm-ydtNz3vmpmIFr9LUz_N3Yb7OoHheWA28AN7wTdkE1KWvo-FfHkuFyAzfd8bReLxUorQT4q2B_NP8eSFV4zgQ2J-Nk_s3QL-4dlRhVX1ND8nY10OBtad7OMCIBeTzk response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:33 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:33 GMT - request: method: post uri: http://devstack.openstack.stack/v2.0/metrics body: encoding: UTF-8 string: '[{"name":"sample_metric_1","timestamp":1463757367143,"dimensions":{"key1":"value1"},"value":42,"value_meta":{"meta_key1":"meta_value1"}},{"name":"sample_metric_2","timestamp":1463757367143,"dimensions":{"key1":"value1"},"value":42,"value_meta":{"meta_key1":"meta_value1"}}]' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qotZOQ-yud5LU7YJTArhSf6esgjcc0rNZ7-1Pjg87IGm4InZycCGN_8fZVpphpCWEVwL3KYNIBCb0eWkQD4nRy9lcYKzOH4y1c8dodzJ6ETrurcm-ydtNz3vmpmIFr9LUz_N3Yb7OoHheWA28AN7wTdkE1KWvo-FfHkuFyAzfd8bReLxUorQT4q2B_NP8eSFV4zgQ2J-Nk_s3QL-4dlRhVX1ND8nY10OBtad7OMCIBeTzk response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:33 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:33 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qotZOQ-yud5LU7YJTArhSf6esgjcc0rNZ7-1Pjg87IGm4InZycCGN_8fZVpphpCWEVwL3KYNIBCb0eWkQD4nRy9lcYKzOH4y1c8dodzJ6ETrurcm-ydtNz3vmpmIFr9LUz_N3Yb7OoHheWA28AN7wTdkE1KWvo-FfHkuFyAzfd8bReLxUorQT4q2B_NP8eSFV4zgQ2J-Nk_s3QL-4dlRhVX1ND8nY10OBtad7OMCIBeTzk response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:33 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '197' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"dimensions": {"key1": "value1"}, "id": "0", "name": "sample_metric_0"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_0", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:33 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qotZOQ-yud5LU7YJTArhSf6esgjcc0rNZ7-1Pjg87IGm4InZycCGN_8fZVpphpCWEVwL3KYNIBCb0eWkQD4nRy9lcYKzOH4y1c8dodzJ6ETrurcm-ydtNz3vmpmIFr9LUz_N3Yb7OoHheWA28AN7wTdkE1KWvo-FfHkuFyAzfd8bReLxUorQT4q2B_NP8eSFV4zgQ2J-Nk_s3QL-4dlRhVX1ND8nY10OBtad7OMCIBeTzk response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:34 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '197' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"dimensions": {"key1": "value1"}, "id": "0", "name": "sample_metric_1"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_1", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:34 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qotZOQ-yud5LU7YJTArhSf6esgjcc0rNZ7-1Pjg87IGm4InZycCGN_8fZVpphpCWEVwL3KYNIBCb0eWkQD4nRy9lcYKzOH4y1c8dodzJ6ETrurcm-ydtNz3vmpmIFr9LUz_N3Yb7OoHheWA28AN7wTdkE1KWvo-FfHkuFyAzfd8bReLxUorQT4q2B_NP8eSFV4zgQ2J-Nk_s3QL-4dlRhVX1ND8nY10OBtad7OMCIBeTzk response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:34 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '197' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"dimensions": {"key1": "value1"}, "id": "0", "name": "sample_metric_2"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics?name=sample_metric_2", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:34 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/names body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmlKsBF3BILw83dieMyyXSMG25F94-dBG7NGu4nuuaQTNRcxnGHRxlcr93sySDWtFhI1dc0KxZkh-sXNjxwCbpJmiZDDqmf0yLtcsRBh7a15n2Jrb7irRJ3Oq72OLyFBy6fIOy8y9Cs9JEQiCkCWVb0xf9rES-dfDNX7NKsBKJjpl8E_7L-3RsUM_Uhn33LsQ6JFlX411ZugrZN3K1Yh1aXKyyOagmHqJd5FU64IX3Phjg response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:18 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '15448' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"id": "1", "name": "account-auditor.passes"}, {"id": "2", "name": "account-auditor.timing.95percentile"}, {"id": "3", "name": "account-auditor.timing.avg"}, {"id": "4", "name": "account-auditor.timing.count"}, {"id": "5", "name": "account-auditor.timing.max"}, {"id": "6", "name": "account-auditor.timing.median"}, {"id": "7", "name": "account-replicator.attempts"}, {"id": "8", "name": "account-replicator.diffs"}, {"id": "9", "name": "account-replicator.failures"}, {"id": "10", "name": "account-replicator.no_changes"}, {"id": "11", "name": "account-replicator.rsyncs"}, {"id": "12", "name": "account-replicator.successes"}, {"id": "13", "name": "account-replicator.timing.95percentile"}, {"id": "14", "name": "account-replicator.timing.avg"}, {"id": "15", "name": "account-replicator.timing.count"}, {"id": "16", "name": "account-replicator.timing.max"}, {"id": "17", "name": "account-replicator.timing.median"}, {"id": "18", "name": "account-server.GET.timing.95percentile"}, {"id": "19", "name": "account-server.GET.timing.avg"}, {"id": "20", "name": "account-server.GET.timing.count"}, {"id": "21", "name": "account-server.GET.timing.max"}, {"id": "22", "name": "account-server.GET.timing.median"}, {"id": "23", "name": "account-server.HEAD.timing.95percentile"}, {"id": "24", "name": "account-server.HEAD.timing.avg"}, {"id": "25", "name": "account-server.HEAD.timing.count"}, {"id": "26", "name": "account-server.HEAD.timing.max"}, {"id": "27", "name": "account-server.HEAD.timing.median"}, {"id": "28", "name": "account-server.PUT.timing.95percentile"}, {"id": "29", "name": "account-server.PUT.timing.avg"}, {"id": "30", "name": "account-server.PUT.timing.count"}, {"id": "31", "name": "account-server.PUT.timing.max"}, {"id": "32", "name": "account-server.PUT.timing.median"}, {"id": "33", "name": "account-server.REPLICATE.timing.95percentile"}, {"id": "34", "name": "account-server.REPLICATE.timing.avg"}, {"id": "35", "name": "account-server.REPLICATE.timing.count"}, {"id": "36", "name": "account-server.REPLICATE.timing.max"}, {"id": "37", "name": "account-server.REPLICATE.timing.median"}, {"id": "38", "name": "aggregation-bolt.execute-count.filtering-bolt_alarm-creation-stream"}, {"id": "39", "name": "blackbox.compute_status"}, {"id": "40", "name": "blackbox.dns_status"}, {"id": "41", "name": "blackbox.identity_status"}, {"id": "42", "name": "blackbox.image_status"}, {"id": "43", "name": "blackbox.monitor_status"}, {"id": "44", "name": "blackbox.network_status"}, {"id": "45", "name": "blackbox.object_status"}, {"id": "46", "name": "blackbox.router_status"}, {"id": "47", "name": "blackbox.volume_status"}, {"id": "48", "name": "container-auditor.passes"}, {"id": "49", "name": "container-auditor.timing.95percentile"}, {"id": "50", "name": "container-auditor.timing.avg"}, {"id": "51", "name": "container-auditor.timing.count"}, {"id": "52", "name": "container-auditor.timing.max"}, {"id": "53", "name": "container-auditor.timing.median"}, {"id": "54", "name": "container-replicator.attempts"}, {"id": "55", "name": "container-replicator.diffs"}, {"id": "56", "name": "container-replicator.failures"}, {"id": "57", "name": "container-replicator.no_changes"}, {"id": "58", "name": "container-replicator.remote_merges"}, {"id": "59", "name": "container-replicator.removes.rhel-swift"}, {"id": "60", "name": "container-replicator.rsyncs"}, {"id": "61", "name": "container-replicator.successes"}, {"id": "62", "name": "container-replicator.timing.95percentile"}, {"id": "63", "name": "container-replicator.timing.avg"}, {"id": "64", "name": "container-replicator.timing.count"}, {"id": "65", "name": "container-replicator.timing.max"}, {"id": "66", "name": "container-replicator.timing.median"}, {"id": "67", "name": "container-server.DELETE.errors.timing.95percentile"}, {"id": "68", "name": "container-server.DELETE.errors.timing.avg"}, {"id": "69", "name": "container-server.DELETE.errors.timing.count"}, {"id": "70", "name": "container-server.DELETE.errors.timing.max"}, {"id": "71", "name": "container-server.DELETE.errors.timing.median"}, {"id": "72", "name": "container-server.DELETE.timing.95percentile"}, {"id": "73", "name": "container-server.DELETE.timing.avg"}, {"id": "74", "name": "container-server.DELETE.timing.count"}, {"id": "75", "name": "container-server.DELETE.timing.max"}, {"id": "76", "name": "container-server.DELETE.timing.median"}, {"id": "77", "name": "container-server.GET.timing.95percentile"}, {"id": "78", "name": "container-server.GET.timing.avg"}, {"id": "79", "name": "container-server.GET.timing.count"}, {"id": "80", "name": "container-server.GET.timing.max"}, {"id": "81", "name": "container-server.GET.timing.median"}, {"id": "82", "name": "container-server.HEAD.timing.95percentile"}, {"id": "83", "name": "container-server.HEAD.timing.avg"}, {"id": "84", "name": "container-server.HEAD.timing.count"}, {"id": "85", "name": "container-server.HEAD.timing.max"}, {"id": "86", "name": "container-server.HEAD.timing.median"}, {"id": "87", "name": "container-server.POST.timing.95percentile"}, {"id": "88", "name": "container-server.POST.timing.avg"}, {"id": "89", "name": "container-server.POST.timing.count"}, {"id": "90", "name": "container-server.POST.timing.max"}, {"id": "91", "name": "container-server.POST.timing.median"}, {"id": "92", "name": "container-server.PUT.timing.95percentile"}, {"id": "93", "name": "container-server.PUT.timing.avg"}, {"id": "94", "name": "container-server.PUT.timing.count"}, {"id": "95", "name": "container-server.PUT.timing.max"}, {"id": "96", "name": "container-server.PUT.timing.median"}, {"id": "97", "name": "container-server.REPLICATE.timing.95percentile"}, {"id": "98", "name": "container-server.REPLICATE.timing.avg"}, {"id": "99", "name": "container-server.REPLICATE.timing.count"}, {"id": "100", "name": "container-server.REPLICATE.timing.max"}, {"id": "101", "name": "container-server.REPLICATE.timing.median"}, {"id": "102", "name": "container-sync.deletes"}, {"id": "103", "name": "container-sync.failures"}, {"id": "104", "name": "container-sync.puts"}, {"id": "105", "name": "container-sync.skips"}, {"id": "106", "name": "container-sync.syncs"}, {"id": "107", "name": "container-updater.no_changes"}, {"id": "108", "name": "container-updater.successes"}, {"id": "109", "name": "container-updater.timing.95percentile"}, {"id": "110", "name": "container-updater.timing.avg"}, {"id": "111", "name": "container-updater.timing.count"}, {"id": "112", "name": "container-updater.timing.max"}, {"id": "113", "name": "container-updater.timing.median"}, {"id": "114", "name": "cpu.idle_perc"}, {"id": "115", "name": "cpu.stolen_perc"}, {"id": "116", "name": "cpu.system_perc"}, {"id": "117", "name": "cpu.user_perc"}, {"id": "118", "name": "cpu.wait_perc"}, {"id": "119", "name": "crash.dump_count"}, {"id": "120", "name": "datapath.file_transfer_object_store_status"}, {"id": "121", "name": "datapath.nslookup_common_status"}, {"id": "122", "name": "datapath.nslookup_kvm_instance_status"}, {"id": "123", "name": "datapath.nslookup_vmware_instance_status"}, {"id": "124", "name": "datapath.tcp_connect_to_kvm_instance_status"}, {"id": "125", "name": "datapath.tcp_connect_to_vmware_instance_status"}, {"id": "126", "name": "disk.inode_used_perc"}, {"id": "127", "name": "disk.space_used_perc"}, {"id": "128", "name": "dns.bind.incoming_queries"}, {"id": "129", "name": "dns.bind.responses"}, {"id": "130", "name": "dns.bind.up"}, {"id": "131", "name": "elasticsearch.active_primary_shards"}, {"id": "132", "name": "elasticsearch.active_shards"}, {"id": "133", "name": "elasticsearch.cluster_status"}, {"id": "134", "name": "elasticsearch.docs.count"}, {"id": "135", "name": "elasticsearch.docs.deleted"}, {"id": "136", "name": "elasticsearch.fielddata.evictions"}, {"id": "137", "name": "elasticsearch.fielddata.size"}, {"id": "138", "name": "elasticsearch.flush.total"}, {"id": "139", "name": "elasticsearch.flush.total.time"}, {"id": "140", "name": "elasticsearch.fs.total.available_in_bytes"}, {"id": "141", "name": "elasticsearch.fs.total.free_in_bytes"}, {"id": "142", "name": "elasticsearch.fs.total.total_in_bytes"}, {"id": "143", "name": "elasticsearch.get.current"}, {"id": "144", "name": "elasticsearch.get.exists.time"}, {"id": "145", "name": "elasticsearch.get.exists.total"}, {"id": "146", "name": "elasticsearch.get.missing.time"}, {"id": "147", "name": "elasticsearch.get.missing.total"}, {"id": "148", "name": "elasticsearch.get.time"}, {"id": "149", "name": "elasticsearch.get.total"}, {"id": "150", "name": "elasticsearch.http.current_open"}, {"id": "151", "name": "elasticsearch.http.total_opened"}, {"id": "152", "name": "elasticsearch.indexing.delete.current"}, {"id": "153", "name": "elasticsearch.indexing.delete.time"}, {"id": "154", "name": "elasticsearch.indexing.delete.total"}, {"id": "155", "name": "elasticsearch.indexing.index.current"}, {"id": "156", "name": "elasticsearch.indexing.index.time"}, {"id": "157", "name": "elasticsearch.indexing.index.total"}, {"id": "158", "name": "elasticsearch.indices.segments.count"}, {"id": "159", "name": "elasticsearch.indices.segments.fixed_bit_set_memory_in_bytes"}, {"id": "160", "name": "elasticsearch.indices.segments.index_writer_max_memory_in_bytes"}, {"id": "161", "name": "elasticsearch.indices.segments.index_writer_memory_in_bytes"}, {"id": "162", "name": "elasticsearch.indices.segments.memory_in_bytes"}, {"id": "163", "name": "elasticsearch.indices.segments.version_map_memory_in_bytes"}, {"id": "164", "name": "elasticsearch.indices.translog.operations"}, {"id": "165", "name": "elasticsearch.indices.translog.size_in_bytes"}, {"id": "166", "name": "elasticsearch.initializing_shards"}, {"id": "167", "name": "elasticsearch.merges.current"}, {"id": "168", "name": "elasticsearch.merges.current.docs"}, {"id": "169", "name": "elasticsearch.merges.current.size"}, {"id": "170", "name": "elasticsearch.merges.total"}, {"id": "171", "name": "elasticsearch.merges.total.docs"}, {"id": "172", "name": "elasticsearch.merges.total.size"}, {"id": "173", "name": "elasticsearch.merges.total.time"}, {"id": "174", "name": "elasticsearch.number_of_data_nodes"}, {"id": "175", "name": "elasticsearch.number_of_nodes"}, {"id": "176", "name": "elasticsearch.pending_tasks_priority_high"}, {"id": "177", "name": "elasticsearch.pending_tasks_priority_urgent"}, {"id": "178", "name": "elasticsearch.pending_tasks_total"}, {"id": "179", "name": "elasticsearch.process.open_fd"}, {"id": "180", "name": "elasticsearch.refresh.total"}, {"id": "181", "name": "elasticsearch.refresh.total.time"}, {"id": "182", "name": "elasticsearch.relocating_shards"}, {"id": "183", "name": "elasticsearch.search.fetch.current"}, {"id": "184", "name": "elasticsearch.search.fetch.open_contexts"}, {"id": "185", "name": "elasticsearch.search.fetch.time"}, {"id": "186", "name": "elasticsearch.search.fetch.total"}, {"id": "187", "name": "elasticsearch.search.query.current"}, {"id": "188", "name": "elasticsearch.search.query.time"}, {"id": "189", "name": "elasticsearch.search.query.total"}, {"id": "190", "name": "elasticsearch.store.size"}, {"id": "191", "name": "elasticsearch.thread_pool.bulk.active"}, {"id": "192", "name": "elasticsearch.thread_pool.bulk.queue"}, {"id": "193", "name": "elasticsearch.thread_pool.bulk.rejected"}, {"id": "194", "name": "elasticsearch.thread_pool.bulk.threads"}, {"id": "195", "name": "elasticsearch.thread_pool.flush.active"}, {"id": "196", "name": "elasticsearch.thread_pool.flush.queue"}, {"id": "197", "name": "elasticsearch.thread_pool.flush.threads"}, {"id": "198", "name": "elasticsearch.thread_pool.generic.active"}, {"id": "199", "name": "elasticsearch.thread_pool.generic.queue"}, {"id": "200", "name": "elasticsearch.thread_pool.generic.threads"}, {"id": "201", "name": "elasticsearch.thread_pool.get.active"}, {"id": "202", "name": "elasticsearch.thread_pool.get.queue"}, {"id": "203", "name": "elasticsearch.thread_pool.get.threads"}, {"id": "204", "name": "elasticsearch.thread_pool.index.active"}, {"id": "205", "name": "elasticsearch.thread_pool.index.queue"}, {"id": "206", "name": "elasticsearch.thread_pool.index.threads"}, {"id": "207", "name": "elasticsearch.thread_pool.management.active"}, {"id": "208", "name": "elasticsearch.thread_pool.management.queue"}, {"id": "209", "name": "elasticsearch.thread_pool.management.threads"}, {"id": "210", "name": "elasticsearch.thread_pool.percolate.active"}, {"id": "211", "name": "elasticsearch.thread_pool.percolate.queue"}, {"id": "212", "name": "elasticsearch.thread_pool.percolate.threads"}, {"id": "213", "name": "elasticsearch.thread_pool.refresh.active"}, {"id": "214", "name": "elasticsearch.thread_pool.refresh.queue"}, {"id": "215", "name": "elasticsearch.thread_pool.refresh.threads"}, {"id": "216", "name": "elasticsearch.thread_pool.search.active"}, {"id": "217", "name": "elasticsearch.thread_pool.search.queue"}, {"id": "218", "name": "elasticsearch.thread_pool.search.threads"}, {"id": "219", "name": "elasticsearch.thread_pool.snapshot.active"}, {"id": "220", "name": "elasticsearch.thread_pool.snapshot.queue"}, {"id": "221", "name": "elasticsearch.thread_pool.snapshot.threads"}, {"id": "222", "name": "elasticsearch.transport.rx_count"}, {"id": "223", "name": "elasticsearch.transport.rx_size"}, {"id": "224", "name": "elasticsearch.transport.server_open"}, {"id": "225", "name": "elasticsearch.transport.tx_count"}, {"id": "226", "name": "elasticsearch.transport.tx_size"}, {"id": "227", "name": "elasticsearch.unassigned_shards"}, {"id": "228", "name": "filtering-bolt.execute-count.event-bolt_metric-alarm-events"}, {"id": "229", "name": "http_response_time"}, {"id": "230", "name": "http_status"}, {"id": "231", "name": "influxdb.httpd.ping_req"}, {"id": "232", "name": "influxdb.httpd.points_write_ok"}, {"id": "233", "name": "influxdb.httpd.query_req"}, {"id": "234", "name": "influxdb.httpd.query_resp_bytes"}, {"id": "235", "name": "influxdb.httpd.req"}, {"id": "236", "name": "influxdb.httpd.write_req"}, {"id": "237", "name": "influxdb.httpd.write_req_bytes"}, {"id": "238", "name": "influxdb.shard.fields_create"}, {"id": "239", "name": "influxdb.shard.series_create"}, {"id": "240", "name": "influxdb.shard.write_points_ok"}, {"id": "241", "name": "influxdb.shard.write_req"}, {"id": "242", "name": "io.read_kbytes_sec"}, {"id": "243", "name": "io.read_req_sec"}, {"id": "244", "name": "io.read_time_sec"}, {"id": "245", "name": "io.write_kbytes_sec"}, {"id": "246", "name": "io.write_req_sec"}, {"id": "247", "name": "io.write_time_sec"}, {"id": "248", "name": "jvm.gc.collectors.old.collection_time"}, {"id": "249", "name": "jvm.gc.collectors.old.count"}, {"id": "250", "name": "jvm.gc.collectors.young.collection_time"}, {"id": "251", "name": "jvm.gc.collectors.young.count"}, {"id": "252", "name": "jvm.mem.heap_committed"}, {"id": "253", "name": "jvm.mem.heap_in_use"}, {"id": "254", "name": "jvm.mem.heap_max"}, {"id": "255", "name": "jvm.mem.heap_used"}, {"id": "256", "name": "jvm.mem.non_heap_committed"}, {"id": "257", "name": "jvm.mem.non_heap_used"}, {"id": "258", "name": "jvm.threads.count"}, {"id": "259", "name": "jvm.threads.peak_count"}, {"id": "260", "name": "kube.health.kube_healthz_api_status"}, {"id": "261", "name": "kube.healthz.api.status.kube_healthz_api_status"}, {"id": "262", "name": "kubernetes.container_cpu_usage_sec"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics/names", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:18 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/metric_measurement_list.yml000066400000000000000000013562331476630434000307270ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/measurements?merge_metrics=true&name=cpu.user_perc&start_time=2016-04-01T14:43:00Z body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:16:10 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/metrics/measurements?merge_metrics=true&name=cpu.user_perc&start_time=2016-04-01T14%3A43%3A00Z"},{"rel":"next","href":"http://devstack.openstack.stack/v2.0/metrics/measurements?offset=2016-05-12T20%3A10%3A12.000Z&merge_metrics=true&name=cpu.user_perc&start_time=2016-04-01T14%3A43%3A00Z"}],"elements":[{"id":"2016-05-12T20:10:12.000Z","name":"cpu.user_perc","dimensions":{},"columns":["timestamp","value","value_meta"],"measurements":[["2016-05-10T11:46:43.000Z",14.8,{}],["2016-05-10T11:47:13.000Z",4.8999999999999995,{}],["2016-05-10T11:47:44.000Z",5.6,{}],["2016-05-10T11:48:14.000Z",4.7,{}],["2016-05-10T11:48:44.000Z",4.8,{}],["2016-05-10T11:49:14.000Z",4.1,{}],["2016-05-10T11:49:44.000Z",4.8,{}],["2016-05-10T11:50:14.000Z",4.0,{}],["2016-05-10T11:50:44.000Z",4.6,{}],["2016-05-10T11:51:14.000Z",3.8,{}],["2016-05-10T11:51:44.000Z",6.4,{}],["2016-05-10T11:52:14.000Z",5.6,{}],["2016-05-10T11:52:44.000Z",5.199999999999999,{}],["2016-05-10T11:53:15.000Z",4.9,{}],["2016-05-10T11:53:44.000Z",4.6,{}],["2016-05-10T11:54:14.000Z",4.1,{}],["2016-05-10T11:54:44.000Z",6.8,{}],["2016-05-10T11:55:14.000Z",4.1,{}],["2016-05-10T11:55:44.000Z",5.1,{}],["2016-05-10T11:56:14.000Z",6.1,{}],["2016-05-10T11:56:44.000Z",5.3999999999999995,{}],["2016-05-10T11:57:14.000Z",4.1,{}],["2016-05-10T11:57:44.000Z",4.9,{}],["2016-05-10T11:58:14.000Z",4.0,{}],["2016-05-10T11:58:44.000Z",4.9,{}],["2016-05-10T11:59:14.000Z",3.6,{}],["2016-05-10T11:59:44.000Z",5.699999999999999,{}],["2016-05-10T12:00:14.000Z",3.7,{}],["2016-05-10T12:00:44.000Z",5.3,{}],["2016-05-10T12:01:14.000Z",4.1,{}],["2016-05-10T12:01:44.000Z",5.3,{}],["2016-05-10T12:02:14.000Z",4.1,{}],["2016-05-10T12:02:44.000Z",5.3,{}],["2016-05-10T12:03:14.000Z",3.8,{}],["2016-05-10T12:03:44.000Z",5.1,{}],["2016-05-10T12:04:14.000Z",4.4,{}],["2016-05-10T12:04:44.000Z",5.0,{}],["2016-05-10T12:05:14.000Z",5.1,{}],["2016-05-10T12:05:44.000Z",6.0,{}],["2016-05-10T12:06:15.000Z",6.3999999999999995,{}],["2016-05-10T12:06:45.000Z",6.1,{}],["2016-05-10T12:07:15.000Z",4.7,{}],["2016-05-10T12:07:45.000Z",5.3999999999999995,{}],["2016-05-10T12:08:15.000Z",4.8,{}],["2016-05-10T12:08:45.000Z",6.2,{}],["2016-05-10T12:09:15.000Z",4.3,{}],["2016-05-10T12:09:45.000Z",4.5,{}],["2016-05-10T12:10:15.000Z",4.2,{}],["2016-05-10T12:10:45.000Z",4.9,{}],["2016-05-10T12:11:15.000Z",5.3,{}],["2016-05-10T12:11:45.000Z",5.6,{}],["2016-05-10T12:12:15.000Z",4.5,{}],["2016-05-10T12:12:45.000Z",5.3,{}],["2016-05-10T12:13:15.000Z",4.3,{}],["2016-05-10T12:13:45.000Z",6.1,{}],["2016-05-10T12:14:15.000Z",4.9,{}],["2016-05-10T12:14:45.000Z",6.1,{}],["2016-05-10T12:15:15.000Z",4.8,{}],["2016-05-10T12:15:45.000Z",5.5,{}],["2016-05-10T12:16:15.000Z",4.699999999999999,{}],["2016-05-10T12:16:45.000Z",6.5,{}],["2016-05-10T12:17:15.000Z",4.9,{}],["2016-05-10T12:17:45.000Z",6.1,{}],["2016-05-10T12:18:15.000Z",5.0,{}],["2016-05-10T12:18:45.000Z",6.3,{}],["2016-05-10T12:19:15.000Z",4.7,{}],["2016-05-10T12:19:45.000Z",5.5,{}],["2016-05-10T12:20:15.000Z",4.2,{}],["2016-05-10T12:20:45.000Z",5.6,{}],["2016-05-10T12:21:15.000Z",4.5,{}],["2016-05-10T12:21:45.000Z",5.6,{}],["2016-05-10T12:22:15.000Z",4.8,{}],["2016-05-10T12:22:45.000Z",6.5,{}],["2016-05-10T12:23:15.000Z",5.199999999999999,{}],["2016-05-10T12:23:45.000Z",5.1,{}],["2016-05-10T12:24:15.000Z",4.6,{}],["2016-05-10T12:24:45.000Z",4.7,{}],["2016-05-10T12:25:15.000Z",4.699999999999999,{}],["2016-05-10T12:25:45.000Z",5.0,{}],["2016-05-10T12:26:15.000Z",6.3,{}],["2016-05-10T12:26:45.000Z",6.1,{}],["2016-05-10T12:27:15.000Z",5.6,{}],["2016-05-10T12:27:45.000Z",5.3,{}],["2016-05-10T12:28:15.000Z",4.3999999999999995,{}],["2016-05-10T12:28:45.000Z",5.3,{}],["2016-05-10T12:29:16.000Z",4.699999999999999,{}],["2016-05-10T12:29:46.000Z",4.6,{}],["2016-05-10T12:30:16.000Z",5.0,{}],["2016-05-10T12:30:46.000Z",4.6,{}],["2016-05-10T12:31:16.000Z",4.5,{}],["2016-05-10T12:31:46.000Z",5.0,{}],["2016-05-10T12:32:16.000Z",4.3,{}],["2016-05-10T12:32:46.000Z",5.5,{}],["2016-05-10T12:33:16.000Z",4.8,{}],["2016-05-10T12:33:46.000Z",4.9,{}],["2016-05-10T12:34:16.000Z",4.1,{}],["2016-05-10T12:34:46.000Z",5.8999999999999995,{}],["2016-05-10T12:35:16.000Z",4.3,{}],["2016-05-10T12:35:46.000Z",5.6,{}],["2016-05-10T12:36:16.000Z",4.4,{}],["2016-05-10T12:36:46.000Z",5.9,{}],["2016-05-10T12:37:16.000Z",4.3,{}],["2016-05-10T12:37:46.000Z",6.3999999999999995,{}],["2016-05-10T12:38:16.000Z",4.1,{}],["2016-05-10T12:38:46.000Z",5.8,{}],["2016-05-10T12:39:16.000Z",5.3,{}],["2016-05-10T12:39:46.000Z",5.2,{}],["2016-05-10T12:40:16.000Z",4.0,{}],["2016-05-10T12:40:46.000Z",5.8999999999999995,{}],["2016-05-10T12:41:16.000Z",5.3,{}],["2016-05-10T12:41:46.000Z",5.5,{}],["2016-05-10T12:42:16.000Z",4.699999999999999,{}],["2016-05-10T12:42:46.000Z",5.1,{}],["2016-05-10T12:43:16.000Z",4.7,{}],["2016-05-10T12:43:46.000Z",5.1,{}],["2016-05-10T12:44:16.000Z",5.6,{}],["2016-05-10T12:44:46.000Z",6.4,{}],["2016-05-10T12:45:16.000Z",4.8,{}],["2016-05-10T12:45:46.000Z",6.1,{}],["2016-05-10T12:46:16.000Z",4.699999999999999,{}],["2016-05-10T12:46:46.000Z",4.5,{}],["2016-05-10T12:47:16.000Z",4.7,{}],["2016-05-10T12:47:46.000Z",5.1,{}],["2016-05-10T12:48:16.000Z",5.3999999999999995,{}],["2016-05-10T12:48:46.000Z",5.0,{}],["2016-05-10T12:49:16.000Z",4.7,{}],["2016-05-10T12:49:46.000Z",5.3,{}],["2016-05-10T12:50:16.000Z",4.9,{}],["2016-05-10T12:50:46.000Z",5.3,{}],["2016-05-10T12:51:16.000Z",5.5,{}],["2016-05-10T12:51:46.000Z",6.8999999999999995,{}],["2016-05-10T12:52:17.000Z",5.1,{}],["2016-05-10T12:52:47.000Z",5.0,{}],["2016-05-10T12:53:17.000Z",4.9,{}],["2016-05-10T12:53:47.000Z",5.3999999999999995,{}],["2016-05-10T12:54:17.000Z",4.4,{}],["2016-05-10T12:54:47.000Z",6.3,{}],["2016-05-10T12:55:17.000Z",4.7,{}],["2016-05-10T12:55:47.000Z",6.3,{}],["2016-05-10T12:56:17.000Z",4.3,{}],["2016-05-10T12:56:47.000Z",5.5,{}],["2016-05-10T12:57:17.000Z",5.9,{}],["2016-05-10T12:57:47.000Z",5.5,{}],["2016-05-10T12:58:17.000Z",5.3,{}],["2016-05-10T12:58:47.000Z",5.699999999999999,{}],["2016-05-10T12:59:17.000Z",4.8,{}],["2016-05-10T12:59:47.000Z",5.4,{}],["2016-05-10T13:00:17.000Z",4.3,{}],["2016-05-10T13:00:47.000Z",5.5,{}],["2016-05-10T13:01:17.000Z",5.0,{}],["2016-05-10T13:01:47.000Z",5.8,{}],["2016-05-10T13:02:17.000Z",7.6,{}],["2016-05-10T13:02:47.000Z",5.9,{}],["2016-05-10T13:03:17.000Z",4.9,{}],["2016-05-10T13:03:47.000Z",5.3,{}],["2016-05-10T13:04:17.000Z",5.199999999999999,{}],["2016-05-10T13:04:47.000Z",7.0,{}],["2016-05-10T13:05:17.000Z",4.2,{}],["2016-05-10T13:05:47.000Z",6.199999999999999,{}],["2016-05-10T13:06:17.000Z",4.0,{}],["2016-05-10T13:06:47.000Z",5.1,{}],["2016-05-10T13:07:17.000Z",4.3,{}],["2016-05-10T13:07:47.000Z",5.4,{}],["2016-05-10T13:08:17.000Z",4.2,{}],["2016-05-10T13:08:47.000Z",5.8,{}],["2016-05-10T13:09:17.000Z",4.6,{}],["2016-05-10T13:09:47.000Z",5.5,{}],["2016-05-10T13:10:17.000Z",5.1,{}],["2016-05-10T13:10:47.000Z",5.8,{}],["2016-05-10T13:11:17.000Z",4.7,{}],["2016-05-10T13:11:47.000Z",5.0,{}],["2016-05-10T13:12:17.000Z",4.3,{}],["2016-05-10T13:12:47.000Z",4.5,{}],["2016-05-10T13:13:17.000Z",4.6,{}],["2016-05-10T13:13:47.000Z",5.1,{}],["2016-05-10T13:14:17.000Z",4.1,{}],["2016-05-10T13:14:47.000Z",5.2,{}],["2016-05-10T13:15:17.000Z",4.5,{}],["2016-05-10T13:15:47.000Z",6.1,{}],["2016-05-10T13:16:17.000Z",4.3999999999999995,{}],["2016-05-10T13:16:48.000Z",5.7,{}],["2016-05-10T13:17:18.000Z",3.8,{}],["2016-05-10T13:17:48.000Z",5.3999999999999995,{}],["2016-05-10T13:18:18.000Z",5.0,{}],["2016-05-10T13:18:48.000Z",4.8,{}],["2016-05-10T13:19:18.000Z",5.0,{}],["2016-05-10T13:19:48.000Z",5.0,{}],["2016-05-10T13:20:18.000Z",3.9,{}],["2016-05-10T13:20:48.000Z",4.8,{}],["2016-05-10T13:21:18.000Z",5.1,{}],["2016-05-10T13:21:48.000Z",5.199999999999999,{}],["2016-05-10T13:22:18.000Z",4.7,{}],["2016-05-10T13:22:48.000Z",4.8,{}],["2016-05-10T13:23:18.000Z",3.9,{}],["2016-05-10T13:23:48.000Z",5.9,{}],["2016-05-10T13:24:18.000Z",3.7,{}],["2016-05-10T13:24:48.000Z",5.3999999999999995,{}],["2016-05-10T13:25:18.000Z",4.0,{}],["2016-05-10T13:25:48.000Z",4.8,{}],["2016-05-10T13:26:18.000Z",5.0,{}],["2016-05-10T13:26:48.000Z",5.1,{}],["2016-05-10T13:27:18.000Z",4.5,{}],["2016-05-10T13:27:48.000Z",6.7,{}],["2016-05-10T13:28:18.000Z",6.0,{}],["2016-05-10T13:28:48.000Z",5.9,{}],["2016-05-10T13:29:18.000Z",5.3,{}],["2016-05-10T13:29:48.000Z",6.699999999999999,{}],["2016-05-10T13:30:18.000Z",5.0,{}],["2016-05-10T13:30:48.000Z",5.9,{}],["2016-05-10T13:31:19.000Z",4.9,{}],["2016-05-10T13:31:48.000Z",6.1,{}],["2016-05-10T13:32:18.000Z",4.9,{}],["2016-05-10T13:32:48.000Z",6.9,{}],["2016-05-10T13:33:18.000Z",5.3999999999999995,{}],["2016-05-10T13:33:48.000Z",5.6,{}],["2016-05-10T13:34:18.000Z",4.8999999999999995,{}],["2016-05-10T13:34:48.000Z",6.7,{}],["2016-05-10T13:35:18.000Z",5.3,{}],["2016-05-10T13:35:48.000Z",6.199999999999999,{}],["2016-05-10T13:36:18.000Z",5.1,{}],["2016-05-10T13:36:48.000Z",6.3,{}],["2016-05-10T13:37:18.000Z",5.0,{}],["2016-05-10T13:37:48.000Z",7.8999999999999995,{}],["2016-05-10T13:38:18.000Z",4.9,{}],["2016-05-10T13:38:48.000Z",6.3,{}],["2016-05-10T13:39:18.000Z",4.6,{}],["2016-05-10T13:39:48.000Z",6.0,{}],["2016-05-10T13:40:19.000Z",5.199999999999999,{}],["2016-05-10T13:40:49.000Z",7.7,{}],["2016-05-10T13:41:19.000Z",6.5,{}],["2016-05-10T13:41:49.000Z",6.7,{}],["2016-05-10T13:42:19.000Z",5.8,{}],["2016-05-10T13:42:49.000Z",7.699999999999999,{}],["2016-05-10T13:43:19.000Z",5.2,{}],["2016-05-10T13:43:49.000Z",6.9,{}],["2016-05-10T13:44:19.000Z",4.8,{}],["2016-05-10T13:44:49.000Z",6.2,{}],["2016-05-10T13:45:19.000Z",6.2,{}],["2016-05-10T13:45:49.000Z",6.1,{}],["2016-05-10T13:46:19.000Z",5.3,{}],["2016-05-10T13:46:49.000Z",7.4,{}],["2016-05-10T13:47:19.000Z",4.9,{}],["2016-05-10T13:47:49.000Z",6.3999999999999995,{}],["2016-05-10T13:48:19.000Z",6.0,{}],["2016-05-10T13:48:49.000Z",7.5,{}],["2016-05-10T13:49:19.000Z",6.3,{}],["2016-05-10T13:49:49.000Z",8.0,{}],["2016-05-10T13:50:19.000Z",5.5,{}],["2016-05-10T13:50:49.000Z",7.0,{}],["2016-05-10T13:51:19.000Z",5.6,{}],["2016-05-10T13:51:49.000Z",6.0,{}],["2016-05-10T13:52:20.000Z",4.8,{}],["2016-05-10T13:52:49.000Z",7.1,{}],["2016-05-10T13:53:19.000Z",6.6,{}],["2016-05-10T13:53:49.000Z",6.6,{}],["2016-05-10T13:54:19.000Z",6.0,{}],["2016-05-10T13:54:49.000Z",6.9,{}],["2016-05-10T13:55:19.000Z",4.7,{}],["2016-05-10T13:55:49.000Z",7.8,{}],["2016-05-10T13:56:19.000Z",4.8,{}],["2016-05-10T13:56:49.000Z",6.8,{}],["2016-05-10T13:57:19.000Z",4.9,{}],["2016-05-10T13:57:49.000Z",5.9,{}],["2016-05-10T13:58:19.000Z",5.699999999999999,{}],["2016-05-10T13:58:49.000Z",7.1,{}],["2016-05-10T13:59:19.000Z",4.8,{}],["2016-05-10T13:59:49.000Z",5.5,{}],["2016-05-10T14:00:19.000Z",5.9,{}],["2016-05-10T14:00:49.000Z",5.6,{}],["2016-05-10T14:01:19.000Z",4.8,{}],["2016-05-10T14:01:49.000Z",5.8,{}],["2016-05-10T14:02:19.000Z",5.199999999999999,{}],["2016-05-10T14:02:49.000Z",7.3,{}],["2016-05-10T14:03:19.000Z",5.8,{}],["2016-05-10T14:03:50.000Z",6.0,{}],["2016-05-10T14:04:20.000Z",4.5,{}],["2016-05-10T14:04:50.000Z",6.5,{}],["2016-05-10T14:05:20.000Z",4.1,{}],["2016-05-10T14:05:50.000Z",6.0,{}],["2016-05-10T14:06:20.000Z",4.5,{}],["2016-05-10T14:06:50.000Z",6.3,{}],["2016-05-10T14:07:20.000Z",4.5,{}],["2016-05-10T14:17:09.000Z",3.8,{}],["2016-05-10T14:17:39.000Z",7.9,{}],["2016-05-10T14:18:09.000Z",4.6,{}],["2016-05-10T14:18:39.000Z",6.3999999999999995,{}],["2016-05-10T14:19:09.000Z",5.4,{}],["2016-05-10T14:19:39.000Z",6.5,{}],["2016-05-10T14:20:09.000Z",7.1,{}],["2016-05-10T14:20:39.000Z",8.5,{}],["2016-05-10T14:21:09.000Z",5.0,{}],["2016-05-10T14:21:39.000Z",6.2,{}],["2016-05-10T14:22:09.000Z",8.3,{}],["2016-05-10T14:22:39.000Z",10.0,{}],["2016-05-10T14:23:09.000Z",5.0,{}],["2016-05-10T14:23:39.000Z",7.4,{}],["2016-05-10T14:24:09.000Z",4.9,{}],["2016-05-10T14:24:39.000Z",5.6,{}],["2016-05-10T14:25:09.000Z",4.5,{}],["2016-05-10T14:25:39.000Z",6.1,{}],["2016-05-10T14:26:10.000Z",4.6,{}],["2016-05-10T14:26:39.000Z",6.5,{}],["2016-05-10T14:27:09.000Z",4.5,{}],["2016-05-10T14:27:39.000Z",6.1,{}],["2016-05-10T14:28:09.000Z",4.5,{}],["2016-05-10T14:28:39.000Z",5.6,{}],["2016-05-10T14:29:09.000Z",4.6,{}],["2016-05-10T14:29:39.000Z",6.9,{}],["2016-05-10T14:30:10.000Z",4.3,{}],["2016-05-10T14:30:39.000Z",6.7,{}],["2016-05-10T14:31:09.000Z",5.7,{}],["2016-05-10T14:31:39.000Z",8.7,{}],["2016-05-10T14:32:09.000Z",4.6,{}],["2016-05-10T14:32:40.000Z",6.199999999999999,{}],["2016-05-10T14:33:10.000Z",4.0,{}],["2016-05-10T14:33:40.000Z",9.4,{}],["2016-05-10T14:34:10.000Z",5.1,{}],["2016-05-10T14:34:40.000Z",7.8999999999999995,{}],["2016-05-10T14:35:10.000Z",6.6,{}],["2016-05-10T14:35:40.000Z",7.4,{}],["2016-05-10T14:36:10.000Z",4.3,{}],["2016-05-10T14:36:40.000Z",8.299999999999999,{}],["2016-05-10T14:37:10.000Z",4.8,{}],["2016-05-10T14:37:40.000Z",8.2,{}],["2016-05-10T14:38:10.000Z",4.5,{}],["2016-05-10T14:38:40.000Z",6.9,{}],["2016-05-10T14:39:10.000Z",5.5,{}],["2016-05-10T14:39:40.000Z",7.3,{}],["2016-05-10T14:40:10.000Z",4.9,{}],["2016-05-10T14:40:40.000Z",5.4,{}],["2016-05-10T14:41:10.000Z",5.8999999999999995,{}],["2016-05-10T14:41:40.000Z",6.8,{}],["2016-05-10T14:42:10.000Z",4.4,{}],["2016-05-10T14:42:40.000Z",8.4,{}],["2016-05-10T14:43:10.000Z",5.8,{}],["2016-05-10T14:43:40.000Z",9.2,{}],["2016-05-10T14:44:10.000Z",5.0,{}],["2016-05-10T14:44:40.000Z",7.1,{}],["2016-05-10T14:45:10.000Z",6.0,{}],["2016-05-10T14:45:40.000Z",8.4,{}],["2016-05-10T14:46:10.000Z",6.5,{}],["2016-05-10T14:46:40.000Z",7.7,{}],["2016-05-10T14:47:10.000Z",8.2,{}],["2016-05-10T14:47:40.000Z",9.299999999999999,{}],["2016-05-10T14:48:10.000Z",5.1,{}],["2016-05-10T14:48:40.000Z",7.4,{}],["2016-05-10T14:49:10.000Z",5.1,{}],["2016-05-10T14:49:40.000Z",8.1,{}],["2016-05-10T14:50:11.000Z",4.3,{}],["2016-05-10T14:50:40.000Z",5.0,{}],["2016-05-10T14:51:11.000Z",4.5,{}],["2016-05-10T14:51:41.000Z",5.6,{}],["2016-05-10T14:52:11.000Z",4.6,{}],["2016-05-10T14:52:41.000Z",5.5,{}],["2016-05-10T14:53:11.000Z",4.3,{}],["2016-05-10T14:53:41.000Z",5.5,{}],["2016-05-10T14:54:11.000Z",4.6,{}],["2016-05-10T14:54:41.000Z",7.1,{}],["2016-05-10T14:55:11.000Z",5.1,{}],["2016-05-10T14:55:41.000Z",5.6,{}],["2016-05-10T14:56:11.000Z",6.0,{}],["2016-05-10T14:56:41.000Z",5.8,{}],["2016-05-10T14:57:11.000Z",4.6,{}],["2016-05-10T14:57:41.000Z",5.8,{}],["2016-05-10T14:58:11.000Z",4.699999999999999,{}],["2016-05-10T14:58:41.000Z",4.4,{}],["2016-05-10T14:59:11.000Z",4.9,{}],["2016-05-10T14:59:41.000Z",6.1,{}],["2016-05-10T15:00:11.000Z",5.6,{}],["2016-05-10T15:00:41.000Z",6.5,{}],["2016-05-10T15:01:11.000Z",5.2,{}],["2016-05-10T15:01:41.000Z",5.3999999999999995,{}],["2016-05-10T15:02:11.000Z",5.1,{}],["2016-05-10T15:02:41.000Z",5.8,{}],["2016-05-10T15:03:11.000Z",5.6,{}],["2016-05-10T15:03:41.000Z",4.8999999999999995,{}],["2016-05-10T15:04:11.000Z",6.2,{}],["2016-05-10T15:04:41.000Z",6.4,{}],["2016-05-10T15:05:11.000Z",5.0,{}],["2016-05-10T15:05:41.000Z",5.2,{}],["2016-05-10T15:06:11.000Z",4.4,{}],["2016-05-10T15:06:41.000Z",4.7,{}],["2016-05-10T15:07:11.000Z",4.1,{}],["2016-05-10T15:07:41.000Z",4.5,{}],["2016-05-10T15:08:11.000Z",4.0,{}],["2016-05-10T15:08:41.000Z",5.0,{}],["2016-05-10T15:09:11.000Z",4.2,{}],["2016-05-10T15:09:41.000Z",4.8,{}],["2016-05-10T15:10:12.000Z",4.4,{}],["2016-05-10T15:10:41.000Z",4.7,{}],["2016-05-10T15:11:11.000Z",4.3999999999999995,{}],["2016-05-10T15:11:42.000Z",5.2,{}],["2016-05-10T15:12:11.000Z",5.6,{}],["2016-05-10T15:12:41.000Z",4.5,{}],["2016-05-10T15:13:11.000Z",5.1,{}],["2016-05-10T15:13:41.000Z",4.9,{}],["2016-05-10T15:14:11.000Z",4.3,{}],["2016-05-10T15:14:42.000Z",4.1,{}],["2016-05-10T15:15:12.000Z",4.8999999999999995,{}],["2016-05-10T15:15:42.000Z",4.1,{}],["2016-05-10T15:16:12.000Z",4.1,{}],["2016-05-10T15:16:42.000Z",4.5,{}],["2016-05-10T15:17:12.000Z",4.3,{}],["2016-05-10T15:17:42.000Z",4.2,{}],["2016-05-10T15:18:12.000Z",3.7,{}],["2016-05-10T15:18:42.000Z",4.8,{}],["2016-05-10T15:19:12.000Z",4.0,{}],["2016-05-10T15:19:42.000Z",4.9,{}],["2016-05-10T15:20:12.000Z",4.0,{}],["2016-05-10T15:20:42.000Z",5.0,{}],["2016-05-10T15:21:12.000Z",3.6,{}],["2016-05-10T15:21:42.000Z",3.8,{}],["2016-05-10T15:22:12.000Z",3.8,{}],["2016-05-10T15:22:42.000Z",4.6,{}],["2016-05-10T15:23:12.000Z",4.5,{}],["2016-05-10T15:23:42.000Z",4.2,{}],["2016-05-10T15:24:12.000Z",3.8,{}],["2016-05-10T15:24:42.000Z",4.699999999999999,{}],["2016-05-10T15:25:12.000Z",4.3,{}],["2016-05-10T15:25:42.000Z",4.4,{}],["2016-05-10T15:26:13.000Z",3.7,{}],["2016-05-10T15:26:42.000Z",4.6,{}],["2016-05-10T15:27:12.000Z",3.8,{}],["2016-05-10T15:27:42.000Z",4.2,{}],["2016-05-10T15:28:13.000Z",4.3,{}],["2016-05-10T15:28:42.000Z",4.9,{}],["2016-05-10T15:29:12.000Z",3.8,{}],["2016-05-10T15:29:42.000Z",4.1,{}],["2016-05-10T15:30:12.000Z",3.5,{}],["2016-05-10T15:30:42.000Z",3.9,{}],["2016-05-10T15:31:12.000Z",3.9,{}],["2016-05-10T15:31:43.000Z",5.1,{}],["2016-05-10T15:32:12.000Z",4.3,{}],["2016-05-10T15:32:42.000Z",4.6,{}],["2016-05-10T15:33:13.000Z",4.1,{}],["2016-05-10T15:33:42.000Z",3.6,{}],["2016-05-10T15:34:13.000Z",4.5,{}],["2016-05-10T15:34:43.000Z",3.7,{}],["2016-05-10T15:35:13.000Z",4.1,{}],["2016-05-10T15:35:43.000Z",4.0,{}],["2016-05-10T15:36:13.000Z",4.1,{}],["2016-05-10T15:36:43.000Z",4.199999999999999,{}],["2016-05-10T15:37:13.000Z",3.7,{}],["2016-05-10T15:37:43.000Z",3.8,{}],["2016-05-10T15:38:13.000Z",4.3,{}],["2016-05-10T15:38:43.000Z",3.6,{}],["2016-05-10T15:39:13.000Z",3.8,{}],["2016-05-10T15:39:43.000Z",4.2,{}],["2016-05-10T15:40:13.000Z",4.3,{}],["2016-05-10T15:40:43.000Z",3.6,{}],["2016-05-10T15:41:13.000Z",4.0,{}],["2016-05-10T15:41:43.000Z",3.7,{}],["2016-05-10T15:42:13.000Z",4.3,{}],["2016-05-10T15:42:43.000Z",3.9,{}],["2016-05-10T15:43:13.000Z",4.0,{}],["2016-05-10T15:43:43.000Z",3.8,{}],["2016-05-10T15:44:13.000Z",4.0,{}],["2016-05-10T15:44:43.000Z",3.6,{}],["2016-05-10T15:45:13.000Z",3.9,{}],["2016-05-10T15:45:43.000Z",4.6,{}],["2016-05-10T15:46:13.000Z",4.7,{}],["2016-05-10T15:46:43.000Z",3.7,{}],["2016-05-10T15:47:13.000Z",4.8,{}],["2016-05-10T15:47:43.000Z",3.9,{}],["2016-05-10T15:48:13.000Z",4.3,{}],["2016-05-10T15:48:43.000Z",4.4,{}],["2016-05-10T15:49:14.000Z",4.2,{}],["2016-05-10T15:49:43.000Z",3.8000000000000003,{}],["2016-05-10T15:50:13.000Z",4.2,{}],["2016-05-10T15:50:43.000Z",3.5,{}],["2016-05-10T15:51:13.000Z",4.0,{}],["2016-05-10T15:51:43.000Z",3.9,{}],["2016-05-10T15:52:13.000Z",4.2,{}],["2016-05-10T15:52:44.000Z",3.8,{}],["2016-05-10T15:53:13.000Z",4.199999999999999,{}],["2016-05-10T15:53:43.000Z",3.8,{}],["2016-05-10T15:54:13.000Z",4.6,{}],["2016-05-10T15:54:43.000Z",3.9,{}],["2016-05-10T15:55:13.000Z",4.4,{}],["2016-05-10T15:55:44.000Z",4.1,{}],["2016-05-10T15:56:13.000Z",4.2,{}],["2016-05-10T15:56:43.000Z",3.8000000000000003,{}],["2016-05-10T15:57:16.000Z",4.0,{}],["2016-05-10T15:57:44.000Z",4.0,{}],["2016-05-10T15:58:15.000Z",4.8,{}],["2016-05-10T15:58:45.000Z",5.3999999999999995,{}],["2016-05-10T15:59:13.000Z",4.8,{}],["2016-05-10T15:59:43.000Z",3.7,{}],["2016-05-10T16:00:14.000Z",4.5,{}],["2016-05-10T16:00:43.000Z",6.7,{}],["2016-05-10T16:01:15.000Z",3.9,{}],["2016-05-10T16:01:44.000Z",5.199999999999999,{}],["2016-05-10T16:02:14.000Z",4.1,{}],["2016-05-10T16:02:44.000Z",4.3,{}],["2016-05-10T16:03:14.000Z",4.3,{}],["2016-05-10T16:03:44.000Z",4.3,{}],["2016-05-10T16:04:14.000Z",4.5,{}],["2016-05-10T16:04:44.000Z",4.1,{}],["2016-05-10T16:05:14.000Z",4.1,{}],["2016-05-10T16:05:44.000Z",4.0,{}],["2016-05-10T16:06:14.000Z",4.199999999999999,{}],["2016-05-10T16:06:44.000Z",4.2,{}],["2016-05-10T16:07:14.000Z",4.5,{}],["2016-05-10T16:07:44.000Z",4.0,{}],["2016-05-10T16:08:14.000Z",4.3,{}],["2016-05-10T16:08:44.000Z",4.5,{}],["2016-05-10T16:09:14.000Z",4.2,{}],["2016-05-10T16:09:45.000Z",3.8,{}],["2016-05-10T16:10:14.000Z",4.1,{}],["2016-05-10T16:10:44.000Z",4.3,{}],["2016-05-10T16:11:14.000Z",3.9,{}],["2016-05-10T16:11:44.000Z",3.9,{}],["2016-05-10T16:12:14.000Z",4.0,{}],["2016-05-10T16:12:44.000Z",4.2,{}],["2016-05-10T16:13:14.000Z",4.3,{}],["2016-05-10T16:13:44.000Z",4.0,{}],["2016-05-10T16:14:14.000Z",4.1,{}],["2016-05-10T16:14:44.000Z",4.6,{}],["2016-05-10T16:15:14.000Z",4.2,{}],["2016-05-10T16:15:44.000Z",4.1,{}],["2016-05-10T16:16:14.000Z",4.1,{}],["2016-05-10T16:16:44.000Z",4.0,{}],["2016-05-10T16:17:14.000Z",3.9,{}],["2016-05-10T16:17:44.000Z",3.8,{}],["2016-05-10T16:18:14.000Z",3.9,{}],["2016-05-10T16:18:44.000Z",4.4,{}],["2016-05-10T16:19:14.000Z",4.5,{}],["2016-05-10T16:19:44.000Z",5.2,{}],["2016-05-10T16:20:15.000Z",4.3,{}],["2016-05-10T16:20:44.000Z",4.1,{}],["2016-05-10T16:21:14.000Z",4.199999999999999,{}],["2016-05-10T16:21:44.000Z",3.9,{}],["2016-05-10T16:22:14.000Z",4.3,{}],["2016-05-10T16:22:44.000Z",4.3999999999999995,{}],["2016-05-10T16:23:14.000Z",3.9,{}],["2016-05-10T16:23:44.000Z",4.0,{}],["2016-05-10T16:24:14.000Z",4.8,{}],["2016-05-10T16:24:45.000Z",5.2,{}],["2016-05-10T16:25:14.000Z",4.2,{}],["2016-05-10T16:25:44.000Z",4.1,{}],["2016-05-10T16:26:15.000Z",4.199999999999999,{}],["2016-05-10T16:26:45.000Z",4.0,{}],["2016-05-10T16:27:15.000Z",5.1,{}],["2016-05-10T16:27:45.000Z",4.1,{}],["2016-05-10T16:28:15.000Z",4.3999999999999995,{}],["2016-05-10T16:28:45.000Z",4.0,{}],["2016-05-10T16:29:15.000Z",4.4,{}],["2016-05-10T16:29:45.000Z",4.3,{}],["2016-05-10T16:30:15.000Z",4.0,{}],["2016-05-10T16:30:45.000Z",5.6,{}],["2016-05-10T16:31:15.000Z",4.2,{}],["2016-05-10T16:31:45.000Z",3.9,{}],["2016-05-10T16:32:15.000Z",4.0,{}],["2016-05-10T16:32:45.000Z",4.2,{}],["2016-05-10T16:33:15.000Z",4.199999999999999,{}],["2016-05-10T16:33:45.000Z",4.2,{}],["2016-05-10T16:34:15.000Z",4.1,{}],["2016-05-10T16:34:45.000Z",4.5,{}],["2016-05-10T16:35:15.000Z",4.8,{}],["2016-05-10T16:35:45.000Z",5.8,{}],["2016-05-10T16:36:15.000Z",4.5,{}],["2016-05-10T16:36:45.000Z",4.3999999999999995,{}],["2016-05-10T16:37:15.000Z",4.2,{}],["2016-05-10T16:37:45.000Z",3.9,{}],["2016-05-10T16:38:16.000Z",4.3,{}],["2016-05-10T16:38:45.000Z",4.3999999999999995,{}],["2016-05-10T16:39:15.000Z",4.3,{}],["2016-05-10T16:39:45.000Z",4.3,{}],["2016-05-10T16:40:15.000Z",3.9,{}],["2016-05-10T16:40:45.000Z",4.5,{}],["2016-05-10T16:41:15.000Z",4.0,{}],["2016-05-10T16:41:45.000Z",4.8,{}],["2016-05-10T16:42:15.000Z",3.9,{}],["2016-05-10T16:42:45.000Z",4.3999999999999995,{}],["2016-05-10T16:43:15.000Z",4.2,{}],["2016-05-10T16:43:46.000Z",4.0,{}],["2016-05-10T16:44:15.000Z",4.0,{}],["2016-05-10T16:44:45.000Z",4.8999999999999995,{}],["2016-05-10T16:45:16.000Z",3.8,{}],["2016-05-10T16:45:45.000Z",4.1,{}],["2016-05-10T16:46:16.000Z",3.9,{}],["2016-05-10T16:46:46.000Z",4.199999999999999,{}],["2016-05-10T16:47:16.000Z",4.3,{}],["2016-05-10T16:47:45.000Z",4.3,{}],["2016-05-10T16:48:16.000Z",4.2,{}],["2016-05-10T16:48:46.000Z",4.5,{}],["2016-05-10T16:49:16.000Z",4.2,{}],["2016-05-10T16:49:46.000Z",5.5,{}],["2016-05-10T16:50:16.000Z",4.6,{}],["2016-05-10T16:50:46.000Z",4.699999999999999,{}],["2016-05-10T16:51:16.000Z",4.8,{}],["2016-05-10T16:51:46.000Z",4.1,{}],["2016-05-10T16:52:16.000Z",5.2,{}],["2016-05-10T16:52:46.000Z",5.5,{}],["2016-05-10T16:53:16.000Z",4.8,{}],["2016-05-10T16:53:46.000Z",4.5,{}],["2016-05-10T16:54:16.000Z",4.0,{}],["2016-05-10T16:54:46.000Z",4.699999999999999,{}],["2016-05-10T16:55:16.000Z",4.5,{}],["2016-05-10T16:55:46.000Z",4.2,{}],["2016-05-10T16:56:16.000Z",4.2,{}],["2016-05-10T16:56:46.000Z",4.8,{}],["2016-05-10T16:57:16.000Z",4.3,{}],["2016-05-10T16:57:46.000Z",3.8,{}],["2016-05-10T16:58:16.000Z",4.0,{}],["2016-05-10T16:58:46.000Z",4.3,{}],["2016-05-10T16:59:16.000Z",4.3,{}],["2016-05-10T16:59:46.000Z",4.3,{}],["2016-05-10T17:00:17.000Z",5.6,{}],["2016-05-10T17:00:46.000Z",4.2,{}],["2016-05-10T17:01:17.000Z",4.3,{}],["2016-05-10T17:01:46.000Z",4.0,{}],["2016-05-10T17:02:16.000Z",4.7,{}],["2016-05-10T17:02:46.000Z",4.0,{}],["2016-05-10T17:03:16.000Z",4.6,{}],["2016-05-10T17:03:46.000Z",4.7,{}],["2016-05-10T17:04:16.000Z",5.199999999999999,{}],["2016-05-10T17:04:46.000Z",3.8,{}],["2016-05-10T17:05:16.000Z",4.3,{}],["2016-05-10T17:05:46.000Z",3.8,{}],["2016-05-10T17:06:16.000Z",5.0,{}],["2016-05-10T17:06:47.000Z",4.1,{}],["2016-05-10T17:07:16.000Z",4.0,{}],["2016-05-10T17:07:46.000Z",3.8000000000000003,{}],["2016-05-10T17:08:16.000Z",4.2,{}],["2016-05-10T17:08:46.000Z",4.0,{}],["2016-05-10T17:09:16.000Z",3.8000000000000003,{}],["2016-05-10T17:09:46.000Z",4.9,{}],["2016-05-10T17:10:16.000Z",5.5,{}],["2016-05-10T17:10:46.000Z",5.0,{}],["2016-05-10T17:11:16.000Z",4.8999999999999995,{}],["2016-05-10T17:11:46.000Z",3.7,{}],["2016-05-10T17:12:16.000Z",4.4,{}],["2016-05-10T17:12:46.000Z",4.0,{}],["2016-05-10T17:13:16.000Z",4.8,{}],["2016-05-10T17:13:46.000Z",4.3,{}],["2016-05-10T17:14:16.000Z",4.4,{}],["2016-05-10T17:14:46.000Z",3.9,{}],["2016-05-10T17:15:16.000Z",4.0,{}],["2016-05-10T17:15:46.000Z",3.6,{}],["2016-05-10T17:16:16.000Z",5.0,{}],["2016-05-10T17:16:46.000Z",4.2,{}],["2016-05-10T17:17:16.000Z",4.6,{}],["2016-05-10T17:17:47.000Z",4.0,{}],["2016-05-10T17:18:17.000Z",4.4,{}],["2016-05-10T17:18:47.000Z",3.8,{}],["2016-05-10T17:19:17.000Z",4.0,{}],["2016-05-10T17:19:47.000Z",4.0,{}],["2016-05-10T17:20:17.000Z",4.1,{}],["2016-05-10T17:20:47.000Z",4.2,{}],["2016-05-10T17:21:17.000Z",3.7,{}],["2016-05-10T17:21:47.000Z",4.1,{}],["2016-05-10T17:22:17.000Z",4.2,{}],["2016-05-10T17:22:47.000Z",3.7,{}],["2016-05-10T17:23:17.000Z",4.1,{}],["2016-05-10T17:23:47.000Z",4.1,{}],["2016-05-10T17:24:17.000Z",4.8,{}],["2016-05-10T17:24:47.000Z",4.1,{}],["2016-05-10T17:25:17.000Z",3.8,{}],["2016-05-10T17:25:47.000Z",4.1,{}],["2016-05-10T17:26:17.000Z",4.6,{}],["2016-05-10T17:26:47.000Z",3.7,{}],["2016-05-10T17:27:17.000Z",4.0,{}],["2016-05-10T17:27:47.000Z",4.3,{}],["2016-05-10T17:28:18.000Z",4.3,{}],["2016-05-10T17:28:47.000Z",4.2,{}],["2016-05-10T17:29:17.000Z",3.7,{}],["2016-05-10T17:29:47.000Z",4.199999999999999,{}],["2016-05-10T17:30:17.000Z",3.9,{}],["2016-05-10T17:30:47.000Z",4.4,{}],["2016-05-10T17:31:17.000Z",4.199999999999999,{}],["2016-05-10T17:31:47.000Z",3.8,{}],["2016-05-10T17:32:17.000Z",3.9,{}],["2016-05-10T17:32:47.000Z",4.1,{}],["2016-05-10T17:33:17.000Z",4.4,{}],["2016-05-10T17:33:47.000Z",5.1,{}],["2016-05-10T17:34:17.000Z",4.3999999999999995,{}],["2016-05-10T17:34:47.000Z",5.3,{}],["2016-05-10T17:35:17.000Z",4.8,{}],["2016-05-10T17:35:47.000Z",4.0,{}],["2016-05-10T17:36:17.000Z",4.199999999999999,{}],["2016-05-10T17:36:48.000Z",4.1,{}],["2016-05-10T17:37:17.000Z",5.1,{}],["2016-05-10T17:37:47.000Z",4.699999999999999,{}],["2016-05-10T17:38:17.000Z",4.0,{}],["2016-05-10T17:38:47.000Z",5.0,{}],["2016-05-10T17:39:17.000Z",5.2,{}],["2016-05-10T17:39:47.000Z",8.4,{}],["2016-05-10T17:40:17.000Z",5.3,{}],["2016-05-10T17:40:47.000Z",5.6,{}],["2016-05-10T17:41:18.000Z",4.3,{}],["2016-05-10T17:41:48.000Z",4.3999999999999995,{}],["2016-05-10T17:42:18.000Z",4.2,{}],["2016-05-10T17:42:48.000Z",5.0,{}],["2016-05-10T17:43:18.000Z",4.3,{}],["2016-05-10T17:43:48.000Z",3.7,{}],["2016-05-10T17:44:18.000Z",4.1,{}],["2016-05-10T17:44:48.000Z",4.5,{}],["2016-05-10T17:45:18.000Z",4.0,{}],["2016-05-10T17:45:48.000Z",4.1,{}],["2016-05-10T17:46:18.000Z",4.0,{}],["2016-05-10T17:46:48.000Z",3.9,{}],["2016-05-10T17:47:18.000Z",4.3,{}],["2016-05-10T17:47:48.000Z",3.9,{}],["2016-05-10T17:48:18.000Z",4.0,{}],["2016-05-10T17:48:48.000Z",4.3,{}],["2016-05-10T17:49:18.000Z",4.3,{}],["2016-05-10T17:49:48.000Z",4.7,{}],["2016-05-10T17:50:18.000Z",4.9,{}],["2016-05-10T17:50:48.000Z",4.5,{}],["2016-05-10T17:51:18.000Z",5.2,{}],["2016-05-10T17:51:48.000Z",4.7,{}],["2016-05-10T17:52:18.000Z",4.1,{}],["2016-05-10T17:52:49.000Z",5.6,{}],["2016-05-10T17:53:18.000Z",4.1,{}],["2016-05-10T17:53:48.000Z",4.1,{}],["2016-05-10T17:54:18.000Z",4.3,{}],["2016-05-10T17:54:49.000Z",4.3,{}],["2016-05-10T17:55:18.000Z",5.2,{}],["2016-05-10T17:55:48.000Z",4.0,{}],["2016-05-10T17:56:18.000Z",4.4,{}],["2016-05-10T17:56:48.000Z",4.6,{}],["2016-05-10T17:57:18.000Z",4.2,{}],["2016-05-10T17:57:48.000Z",4.0,{}],["2016-05-10T17:58:18.000Z",4.5,{}],["2016-05-10T17:58:49.000Z",4.0,{}],["2016-05-10T17:59:18.000Z",4.2,{}],["2016-05-10T17:59:48.000Z",4.3,{}],["2016-05-10T18:00:18.000Z",5.6,{}],["2016-05-10T18:00:48.000Z",4.3,{}],["2016-05-10T18:01:18.000Z",4.3999999999999995,{}],["2016-05-10T18:01:49.000Z",4.8,{}],["2016-05-10T18:02:19.000Z",5.199999999999999,{}],["2016-05-10T18:02:49.000Z",4.7,{}],["2016-05-10T18:03:19.000Z",4.6,{}],["2016-05-10T18:03:49.000Z",5.0,{}],["2016-05-10T18:04:19.000Z",4.5,{}],["2016-05-10T18:04:49.000Z",5.0,{}],["2016-05-10T18:05:19.000Z",4.7,{}],["2016-05-10T18:05:49.000Z",4.8999999999999995,{}],["2016-05-10T18:06:19.000Z",5.0,{}],["2016-05-10T18:06:49.000Z",6.4,{}],["2016-05-10T18:07:19.000Z",5.0,{}],["2016-05-10T18:07:49.000Z",6.0,{}],["2016-05-10T18:08:19.000Z",4.9,{}],["2016-05-10T18:08:49.000Z",5.0,{}],["2016-05-10T18:09:19.000Z",4.699999999999999,{}],["2016-05-10T18:09:49.000Z",4.8,{}],["2016-05-10T18:10:19.000Z",4.7,{}],["2016-05-10T18:10:49.000Z",5.4,{}],["2016-05-10T18:11:19.000Z",5.8,{}],["2016-05-10T18:11:49.000Z",4.4,{}],["2016-05-10T18:12:19.000Z",4.6,{}],["2016-05-10T18:12:49.000Z",6.199999999999999,{}],["2016-05-10T18:13:19.000Z",5.5,{}],["2016-05-10T18:13:49.000Z",4.4,{}],["2016-05-10T18:14:19.000Z",4.9,{}],["2016-05-10T18:14:50.000Z",5.0,{}],["2016-05-10T18:15:19.000Z",4.5,{}],["2016-05-10T18:15:49.000Z",5.1,{}],["2016-05-10T18:16:19.000Z",5.1,{}],["2016-05-10T18:16:49.000Z",4.8,{}],["2016-05-10T18:17:19.000Z",4.5,{}],["2016-05-10T18:17:49.000Z",5.1,{}],["2016-05-10T18:18:20.000Z",4.2,{}],["2016-05-10T18:18:49.000Z",3.9,{}],["2016-05-10T18:19:19.000Z",4.1,{}],["2016-05-10T18:19:49.000Z",4.0,{}],["2016-05-10T18:20:19.000Z",5.1,{}],["2016-05-10T18:20:50.000Z",3.9,{}],["2016-05-10T18:21:19.000Z",4.6,{}],["2016-05-10T18:21:49.000Z",5.5,{}],["2016-05-10T18:22:19.000Z",4.3,{}],["2016-05-10T18:22:50.000Z",4.3,{}],["2016-05-10T18:23:20.000Z",4.3,{}],["2016-05-10T18:23:50.000Z",4.0,{}],["2016-05-10T18:24:20.000Z",4.2,{}],["2016-05-10T18:24:50.000Z",4.2,{}],["2016-05-10T18:25:21.000Z",4.1,{}],["2016-05-10T18:25:50.000Z",4.0,{}],["2016-05-10T18:26:20.000Z",3.8,{}],["2016-05-10T18:26:50.000Z",4.3999999999999995,{}],["2016-05-10T18:27:20.000Z",3.9,{}],["2016-05-10T18:27:50.000Z",4.2,{}],["2016-05-10T18:28:20.000Z",4.0,{}],["2016-05-10T18:28:50.000Z",4.3999999999999995,{}],["2016-05-10T18:29:20.000Z",6.3,{}],["2016-05-10T18:29:50.000Z",3.9,{}],["2016-05-10T18:30:20.000Z",4.1,{}],["2016-05-10T21:18:56.000Z",4.7,{}],["2016-05-10T21:19:27.000Z",4.2,{}],["2016-05-10T21:19:56.000Z",4.3999999999999995,{}],["2016-05-10T21:20:26.000Z",4.8,{}],["2016-05-10T21:20:57.000Z",5.0,{}],["2016-05-10T21:21:27.000Z",5.6,{}],["2016-05-10T21:21:57.000Z",4.2,{}],["2016-05-10T21:22:27.000Z",4.2,{}],["2016-05-10T21:22:57.000Z",4.7,{}],["2016-05-10T21:23:27.000Z",4.3999999999999995,{}],["2016-05-10T21:23:57.000Z",4.0,{}],["2016-05-10T21:24:27.000Z",4.1,{}],["2016-05-10T21:24:57.000Z",4.6,{}],["2016-05-10T21:25:27.000Z",4.5,{}],["2016-05-10T21:25:57.000Z",4.4,{}],["2016-05-10T21:26:27.000Z",4.1,{}],["2016-05-10T21:26:57.000Z",4.8,{}],["2016-05-10T21:27:27.000Z",4.5,{}],["2016-05-10T21:27:57.000Z",5.2,{}],["2016-05-10T21:28:27.000Z",4.8,{}],["2016-05-10T21:28:57.000Z",4.1,{}],["2016-05-10T21:29:27.000Z",4.5,{}],["2016-05-10T21:29:57.000Z",4.5,{}],["2016-05-10T21:30:27.000Z",4.8,{}],["2016-05-10T21:30:57.000Z",3.9,{}],["2016-05-10T21:31:27.000Z",4.2,{}],["2016-05-10T21:31:57.000Z",4.6,{}],["2016-05-10T21:32:27.000Z",4.5,{}],["2016-05-10T21:32:57.000Z",4.1,{}],["2016-05-10T21:33:27.000Z",4.3999999999999995,{}],["2016-05-10T21:33:57.000Z",4.2,{}],["2016-05-10T21:34:27.000Z",4.4,{}],["2016-05-10T21:34:57.000Z",4.3999999999999995,{}],["2016-05-10T21:35:27.000Z",4.2,{}],["2016-05-10T21:35:57.000Z",4.3,{}],["2016-05-10T21:36:27.000Z",4.7,{}],["2016-05-10T21:36:57.000Z",4.3,{}],["2016-05-10T21:37:27.000Z",4.3,{}],["2016-05-10T21:37:57.000Z",4.3,{}],["2016-05-10T21:38:27.000Z",4.8999999999999995,{}],["2016-05-10T21:38:57.000Z",4.0,{}],["2016-05-10T21:39:27.000Z",3.9,{}],["2016-05-10T21:39:57.000Z",4.3,{}],["2016-05-10T21:40:27.000Z",4.3,{}],["2016-05-10T21:40:57.000Z",4.1,{}],["2016-05-10T21:41:28.000Z",4.5,{}],["2016-05-10T21:41:57.000Z",4.5,{}],["2016-05-10T21:42:27.000Z",4.9,{}],["2016-05-10T21:42:57.000Z",3.9,{}],["2016-05-10T21:43:27.000Z",4.199999999999999,{}],["2016-05-10T21:43:58.000Z",4.2,{}],["2016-05-10T21:44:28.000Z",5.1,{}],["2016-05-10T21:44:58.000Z",4.0,{}],["2016-05-10T21:45:27.000Z",4.3999999999999995,{}],["2016-05-10T21:45:57.000Z",4.3,{}],["2016-05-10T21:46:27.000Z",4.9,{}],["2016-05-10T21:46:57.000Z",4.1,{}],["2016-05-10T21:47:27.000Z",4.1,{}],["2016-05-10T21:47:57.000Z",4.3,{}],["2016-05-10T21:48:27.000Z",4.7,{}],["2016-05-10T21:48:58.000Z",4.8,{}],["2016-05-10T21:49:28.000Z",5.0,{}],["2016-05-10T21:49:58.000Z",4.7,{}],["2016-05-10T21:50:28.000Z",4.5,{}],["2016-05-10T21:50:58.000Z",4.3,{}],["2016-05-10T21:51:28.000Z",4.4,{}],["2016-05-10T21:51:58.000Z",4.2,{}],["2016-05-10T21:52:28.000Z",4.8999999999999995,{}],["2016-05-10T21:52:58.000Z",4.4,{}],["2016-05-10T21:53:28.000Z",4.5,{}],["2016-05-10T21:53:58.000Z",4.4,{}],["2016-05-10T21:54:28.000Z",4.5,{}],["2016-05-10T21:54:58.000Z",4.4,{}],["2016-05-10T21:55:28.000Z",5.0,{}],["2016-05-10T21:55:58.000Z",4.3999999999999995,{}],["2016-05-10T21:56:28.000Z",4.5,{}],["2016-05-10T21:56:58.000Z",4.0,{}],["2016-05-10T21:57:28.000Z",4.1,{}],["2016-05-10T21:57:58.000Z",5.5,{}],["2016-05-10T21:58:28.000Z",5.0,{}],["2016-05-10T21:58:58.000Z",3.8,{}],["2016-05-10T21:59:29.000Z",4.3999999999999995,{}],["2016-05-10T21:59:58.000Z",3.9,{}],["2016-05-10T22:00:28.000Z",4.6,{}],["2016-05-10T22:00:58.000Z",4.3,{}],["2016-05-10T22:01:28.000Z",4.2,{}],["2016-05-10T22:01:58.000Z",4.4,{}],["2016-05-10T22:02:28.000Z",4.6,{}],["2016-05-10T22:02:58.000Z",6.0,{}],["2016-05-10T22:03:28.000Z",4.3,{}],["2016-05-10T22:03:58.000Z",4.9,{}],["2016-05-10T22:04:28.000Z",4.6,{}],["2016-05-10T22:04:58.000Z",4.8,{}],["2016-05-10T22:05:28.000Z",5.0,{}],["2016-05-10T22:05:58.000Z",4.5,{}],["2016-05-10T22:06:28.000Z",5.0,{}],["2016-05-10T22:06:58.000Z",4.6,{}],["2016-05-10T22:07:28.000Z",6.0,{}],["2016-05-10T22:07:58.000Z",4.9,{}],["2016-05-10T22:08:28.000Z",5.199999999999999,{}],["2016-05-10T22:08:58.000Z",4.5,{}],["2016-05-10T22:09:28.000Z",5.4,{}],["2016-05-10T22:09:58.000Z",5.5,{}],["2016-05-10T22:10:28.000Z",6.2,{}],["2016-05-10T22:10:58.000Z",5.5,{}],["2016-05-10T22:11:28.000Z",6.0,{}],["2016-05-10T22:11:58.000Z",4.4,{}],["2016-05-10T22:12:28.000Z",5.7,{}],["2016-05-10T22:12:58.000Z",5.1,{}],["2016-05-10T22:13:28.000Z",5.1,{}],["2016-05-10T22:13:58.000Z",4.6,{}],["2016-05-10T22:14:28.000Z",5.0,{}],["2016-05-10T22:14:58.000Z",4.6,{}],["2016-05-10T22:15:28.000Z",4.8,{}],["2016-05-10T22:15:59.000Z",4.6,{}],["2016-05-10T22:16:28.000Z",4.8,{}],["2016-05-10T22:16:58.000Z",4.5,{}],["2016-05-10T22:17:29.000Z",4.9,{}],["2016-05-10T22:17:59.000Z",4.5,{}],["2016-05-10T22:18:28.000Z",5.0,{}],["2016-05-10T22:18:58.000Z",4.8,{}],["2016-05-10T22:19:28.000Z",4.6,{}],["2016-05-10T22:19:58.000Z",4.5,{}],["2016-05-10T22:20:28.000Z",5.1,{}],["2016-05-10T22:20:58.000Z",4.8,{}],["2016-05-10T22:21:28.000Z",6.0,{}],["2016-05-10T22:21:59.000Z",5.4,{}],["2016-05-10T22:22:29.000Z",5.6,{}],["2016-05-10T22:22:59.000Z",5.3,{}],["2016-05-10T22:23:29.000Z",5.3,{}],["2016-05-10T22:23:59.000Z",5.0,{}],["2016-05-10T22:24:29.000Z",5.3999999999999995,{}],["2016-05-10T22:24:59.000Z",4.5,{}],["2016-05-10T22:25:29.000Z",4.7,{}],["2016-05-10T22:25:59.000Z",5.199999999999999,{}],["2016-05-10T22:26:29.000Z",5.7,{}],["2016-05-10T22:26:59.000Z",4.6,{}],["2016-05-10T22:27:29.000Z",5.1,{}],["2016-05-10T22:27:59.000Z",5.1,{}],["2016-05-10T22:28:29.000Z",4.9,{}],["2016-05-10T22:28:59.000Z",5.8,{}],["2016-05-10T22:29:29.000Z",4.8,{}],["2016-05-10T22:29:59.000Z",4.1,{}],["2016-05-10T22:30:29.000Z",4.4,{}],["2016-05-10T22:30:59.000Z",4.7,{}],["2016-05-10T22:31:29.000Z",4.699999999999999,{}],["2016-05-10T22:31:59.000Z",4.4,{}],["2016-05-10T22:32:29.000Z",4.4,{}],["2016-05-10T22:32:59.000Z",5.1,{}],["2016-05-10T22:33:29.000Z",4.5,{}],["2016-05-10T22:33:59.000Z",4.3999999999999995,{}],["2016-05-10T22:34:29.000Z",4.9,{}],["2016-05-10T22:34:59.000Z",4.8,{}],["2016-05-10T22:35:29.000Z",5.199999999999999,{}],["2016-05-10T22:35:59.000Z",4.4,{}],["2016-05-10T22:36:29.000Z",5.4,{}],["2016-05-10T22:36:59.000Z",5.6,{}],["2016-05-10T22:37:29.000Z",4.7,{}],["2016-05-10T22:37:59.000Z",4.6,{}],["2016-05-10T22:38:29.000Z",5.5,{}],["2016-05-10T22:38:59.000Z",5.0,{}],["2016-05-10T22:39:29.000Z",5.0,{}],["2016-05-10T22:39:59.000Z",5.699999999999999,{}],["2016-05-10T22:40:29.000Z",4.8,{}],["2016-05-10T22:40:59.000Z",6.1,{}],["2016-05-10T22:41:29.000Z",5.3,{}],["2016-05-10T22:41:59.000Z",4.699999999999999,{}],["2016-05-10T22:42:29.000Z",5.3,{}],["2016-05-10T22:43:00.000Z",4.7,{}],["2016-05-10T22:43:29.000Z",5.7,{}],["2016-05-10T22:44:00.000Z",4.3999999999999995,{}],["2016-05-10T22:44:29.000Z",5.0,{}],["2016-05-10T22:44:59.000Z",5.1,{}],["2016-05-10T22:45:30.000Z",4.8,{}],["2016-05-10T22:45:59.000Z",4.4,{}],["2016-05-10T22:46:30.000Z",4.7,{}],["2016-05-10T22:46:59.000Z",5.3999999999999995,{}],["2016-05-10T22:47:29.000Z",4.5,{}],["2016-05-10T22:48:00.000Z",4.6,{}],["2016-05-10T22:48:29.000Z",4.6,{}],["2016-05-10T22:48:59.000Z",5.1,{}],["2016-05-10T22:49:29.000Z",4.6,{}],["2016-05-10T22:50:00.000Z",4.5,{}],["2016-05-10T22:50:30.000Z",4.5,{}],["2016-05-10T22:51:00.000Z",5.0,{}],["2016-05-10T22:51:30.000Z",4.5,{}],["2016-05-10T22:52:00.000Z",4.7,{}],["2016-05-10T22:52:30.000Z",4.4,{}],["2016-05-10T22:53:00.000Z",5.3999999999999995,{}],["2016-05-10T22:53:30.000Z",4.6,{}],["2016-05-10T22:54:00.000Z",4.5,{}],["2016-05-10T22:54:30.000Z",4.5,{}],["2016-05-10T22:55:00.000Z",4.4,{}],["2016-05-10T22:55:30.000Z",4.8,{}],["2016-05-10T22:56:00.000Z",4.699999999999999,{}],["2016-05-10T22:56:30.000Z",4.5,{}],["2016-05-10T22:57:00.000Z",4.3,{}],["2016-05-10T22:57:30.000Z",4.2,{}],["2016-05-10T22:58:00.000Z",4.6,{}],["2016-05-10T22:58:30.000Z",5.5,{}],["2016-05-10T22:59:00.000Z",4.9,{}],["2016-05-10T22:59:30.000Z",5.6,{}],["2016-05-10T23:00:00.000Z",4.3,{}],["2016-05-10T23:00:30.000Z",4.199999999999999,{}],["2016-05-10T23:01:00.000Z",5.1,{}],["2016-05-10T23:01:31.000Z",4.4,{}],["2016-05-10T23:02:00.000Z",5.3,{}],["2016-05-10T23:02:30.000Z",4.3999999999999995,{}],["2016-05-10T23:03:00.000Z",4.8,{}],["2016-05-10T23:03:30.000Z",4.2,{}],["2016-05-10T23:04:00.000Z",4.5,{}],["2016-05-10T23:04:30.000Z",4.699999999999999,{}],["2016-05-10T23:05:00.000Z",4.3,{}],["2016-05-10T23:05:30.000Z",4.2,{}],["2016-05-10T23:06:00.000Z",4.4,{}],["2016-05-10T23:06:30.000Z",4.199999999999999,{}],["2016-05-10T23:07:01.000Z",4.4,{}],["2016-05-10T23:07:30.000Z",4.3,{}],["2016-05-10T23:08:00.000Z",4.6,{}],["2016-05-10T23:08:30.000Z",4.1,{}],["2016-05-10T23:09:00.000Z",4.2,{}],["2016-05-10T23:09:31.000Z",4.2,{}],["2016-05-10T23:10:00.000Z",5.3999999999999995,{}],["2016-05-10T23:10:31.000Z",4.1,{}],["2016-05-10T23:11:01.000Z",4.7,{}],["2016-05-10T23:11:30.000Z",4.3,{}],["2016-05-10T23:12:01.000Z",4.1,{}],["2016-05-10T23:12:30.000Z",4.3,{}],["2016-05-10T23:13:00.000Z",4.9,{}],["2016-05-10T23:13:30.000Z",4.3,{}],["2016-05-10T23:14:00.000Z",4.4,{}],["2016-05-10T23:14:30.000Z",4.0,{}],["2016-05-10T23:15:00.000Z",4.3,{}],["2016-05-10T23:15:30.000Z",4.3,{}],["2016-05-10T23:16:00.000Z",4.9,{}],["2016-05-10T23:16:30.000Z",5.1,{}],["2016-05-10T23:17:00.000Z",5.3999999999999995,{}],["2016-05-10T23:17:30.000Z",4.3,{}],["2016-05-10T23:18:00.000Z",5.1,{}],["2016-05-10T23:18:30.000Z",4.3,{}],["2016-05-10T23:19:01.000Z",4.3999999999999995,{}],["2016-05-10T23:19:30.000Z",4.3,{}],["2016-05-10T23:20:01.000Z",3.9,{}],["2016-05-10T23:20:31.000Z",4.3,{}],["2016-05-10T23:21:01.000Z",4.4,{}],["2016-05-10T23:21:31.000Z",4.1,{}],["2016-05-10T23:22:01.000Z",4.199999999999999,{}],["2016-05-10T23:22:31.000Z",4.2,{}],["2016-05-10T23:23:01.000Z",4.5,{}],["2016-05-10T23:23:31.000Z",4.1,{}],["2016-05-10T23:24:01.000Z",4.0,{}],["2016-05-10T23:24:31.000Z",4.4,{}],["2016-05-10T23:25:01.000Z",5.1,{}],["2016-05-10T23:25:31.000Z",4.3,{}],["2016-05-10T23:26:01.000Z",3.8,{}],["2016-05-10T23:26:31.000Z",5.7,{}],["2016-05-10T23:27:01.000Z",4.3,{}],["2016-05-10T23:27:31.000Z",4.5,{}],["2016-05-10T23:28:01.000Z",4.5,{}],["2016-05-10T23:28:31.000Z",4.3,{}],["2016-05-10T23:29:01.000Z",4.3,{}],["2016-05-10T23:29:31.000Z",4.5,{}],["2016-05-10T23:30:01.000Z",4.3,{}],["2016-05-10T23:30:32.000Z",4.2,{}],["2016-05-10T23:31:01.000Z",4.5,{}],["2016-05-10T23:31:32.000Z",4.4,{}],["2016-05-10T23:32:01.000Z",4.199999999999999,{}],["2016-05-10T23:32:31.000Z",4.4,{}],["2016-05-10T23:33:01.000Z",4.6,{}],["2016-05-10T23:33:31.000Z",4.3999999999999995,{}],["2016-05-10T23:34:01.000Z",3.8,{}],["2016-05-10T23:34:31.000Z",4.2,{}],["2016-05-10T23:35:01.000Z",4.5,{}],["2016-05-10T23:35:31.000Z",4.5,{}],["2016-05-10T23:36:01.000Z",4.1,{}],["2016-05-10T23:36:32.000Z",4.3,{}],["2016-05-10T23:37:01.000Z",4.7,{}],["2016-05-10T23:37:32.000Z",4.6,{}],["2016-05-10T23:38:01.000Z",4.0,{}],["2016-05-10T23:38:31.000Z",4.1,{}],["2016-05-10T23:39:02.000Z",4.699999999999999,{}],["2016-05-10T23:39:32.000Z",4.4,{}],["2016-05-10T23:40:01.000Z",3.9,{}],["2016-05-10T23:40:31.000Z",4.7,{}],["2016-05-10T23:41:01.000Z",4.7,{}],["2016-05-10T23:41:31.000Z",4.5,{}],["2016-05-10T23:42:01.000Z",4.0,{}],["2016-05-10T23:42:31.000Z",4.3999999999999995,{}],["2016-05-10T23:43:01.000Z",4.2,{}],["2016-05-10T23:43:31.000Z",4.6,{}],["2016-05-10T23:44:01.000Z",5.0,{}],["2016-05-10T23:44:32.000Z",4.7,{}],["2016-05-10T23:45:02.000Z",4.3,{}],["2016-05-10T23:45:32.000Z",4.8,{}],["2016-05-10T23:46:02.000Z",4.2,{}],["2016-05-10T23:46:32.000Z",4.4,{}],["2016-05-10T23:47:02.000Z",4.8,{}],["2016-05-10T23:47:32.000Z",4.4,{}],["2016-05-10T23:48:02.000Z",4.7,{}],["2016-05-10T23:48:32.000Z",4.5,{}],["2016-05-10T23:49:02.000Z",6.3,{}],["2016-05-10T23:49:32.000Z",4.7,{}],["2016-05-10T23:50:02.000Z",4.1,{}],["2016-05-10T23:50:32.000Z",4.3999999999999995,{}],["2016-05-10T23:51:02.000Z",4.8,{}],["2016-05-10T23:51:32.000Z",4.3,{}],["2016-05-10T23:52:02.000Z",4.3,{}],["2016-05-10T23:52:32.000Z",4.4,{}],["2016-05-10T23:53:02.000Z",4.5,{}],["2016-05-10T23:53:32.000Z",4.5,{}],["2016-05-10T23:54:02.000Z",4.1,{}],["2016-05-10T23:54:32.000Z",4.3,{}],["2016-05-10T23:55:02.000Z",4.5,{}],["2016-05-10T23:55:32.000Z",4.5,{}],["2016-05-10T23:56:02.000Z",6.6,{}],["2016-05-10T23:56:32.000Z",4.5,{}],["2016-05-10T23:57:02.000Z",4.699999999999999,{}],["2016-05-10T23:57:32.000Z",4.3,{}],["2016-05-10T23:58:02.000Z",4.7,{}],["2016-05-10T23:58:32.000Z",4.199999999999999,{}],["2016-05-10T23:59:02.000Z",4.3,{}],["2016-05-10T23:59:32.000Z",4.4,{}],["2016-05-11T00:00:02.000Z",5.5,{}],["2016-05-11T00:00:32.000Z",4.1,{}],["2016-05-11T00:01:02.000Z",4.3,{}],["2016-05-11T00:01:32.000Z",4.5,{}],["2016-05-11T00:02:03.000Z",5.9,{}],["2016-05-11T00:02:32.000Z",4.8,{}],["2016-05-11T00:03:02.000Z",5.8,{}],["2016-05-11T00:03:32.000Z",4.5,{}],["2016-05-11T00:04:02.000Z",5.5,{}],["2016-05-11T00:04:32.000Z",4.0,{}],["2016-05-11T00:05:02.000Z",4.3,{}],["2016-05-11T00:05:32.000Z",5.4,{}],["2016-05-11T00:06:03.000Z",4.8,{}],["2016-05-11T00:06:33.000Z",4.9,{}],["2016-05-11T00:07:03.000Z",4.1,{}],["2016-05-11T00:07:33.000Z",4.3,{}],["2016-05-11T00:08:03.000Z",4.6,{}],["2016-05-11T00:08:33.000Z",4.3,{}],["2016-05-11T00:09:04.000Z",4.6,{}],["2016-05-11T00:09:33.000Z",4.5,{}],["2016-05-11T00:10:03.000Z",4.7,{}],["2016-05-11T00:10:33.000Z",4.7,{}],["2016-05-11T00:11:03.000Z",4.4,{}],["2016-05-11T00:11:33.000Z",4.6,{}],["2016-05-11T00:12:03.000Z",5.2,{}],["2016-05-11T00:12:33.000Z",4.4,{}],["2016-05-11T00:13:03.000Z",4.3999999999999995,{}],["2016-05-11T00:13:33.000Z",4.9,{}],["2016-05-11T00:14:03.000Z",4.8,{}],["2016-05-11T00:14:33.000Z",4.5,{}],["2016-05-11T00:15:03.000Z",4.699999999999999,{}],["2016-05-11T00:15:33.000Z",4.4,{}],["2016-05-11T00:16:03.000Z",5.6,{}],["2016-05-11T00:16:33.000Z",6.2,{}],["2016-05-11T00:17:04.000Z",5.0,{}],["2016-05-11T00:17:33.000Z",4.6,{}],["2016-05-11T00:18:03.000Z",5.0,{}],["2016-05-11T00:18:33.000Z",4.699999999999999,{}],["2016-05-11T00:19:03.000Z",4.5,{}],["2016-05-11T00:19:33.000Z",5.6,{}],["2016-05-11T00:20:03.000Z",5.199999999999999,{}],["2016-05-11T00:20:33.000Z",4.9,{}],["2016-05-11T00:21:03.000Z",4.6,{}],["2016-05-11T00:21:33.000Z",5.1,{}],["2016-05-11T00:22:03.000Z",4.5,{}],["2016-05-11T00:22:34.000Z",4.7,{}],["2016-05-11T00:23:03.000Z",4.699999999999999,{}],["2016-05-11T00:23:33.000Z",4.8,{}],["2016-05-11T00:24:03.000Z",4.9,{}],["2016-05-11T00:24:33.000Z",4.5,{}],["2016-05-11T00:25:03.000Z",4.8,{}],["2016-05-11T00:25:34.000Z",4.5,{}],["2016-05-11T00:26:03.000Z",5.4,{}],["2016-05-11T00:26:33.000Z",4.6,{}],["2016-05-11T00:27:03.000Z",5.8,{}],["2016-05-11T00:27:33.000Z",5.7,{}],["2016-05-11T00:28:03.000Z",4.5,{}],["2016-05-11T00:28:33.000Z",4.5,{}],["2016-05-11T00:29:03.000Z",6.6,{}],["2016-05-11T00:29:33.000Z",6.0,{}],["2016-05-11T00:30:03.000Z",6.0,{}],["2016-05-11T00:30:33.000Z",4.8,{}],["2016-05-11T00:31:03.000Z",5.3,{}],["2016-05-11T00:31:34.000Z",4.9,{}],["2016-05-11T00:32:04.000Z",4.6,{}],["2016-05-11T00:32:34.000Z",5.0,{}],["2016-05-11T00:33:04.000Z",5.2,{}],["2016-05-11T00:33:34.000Z",4.8,{}],["2016-05-11T00:34:04.000Z",4.8,{}],["2016-05-11T00:34:34.000Z",5.1,{}],["2016-05-11T00:35:04.000Z",4.8,{}],["2016-05-11T00:35:34.000Z",4.4,{}],["2016-05-11T00:36:04.000Z",4.699999999999999,{}],["2016-05-11T00:36:34.000Z",4.6,{}],["2016-05-11T00:37:04.000Z",4.4,{}],["2016-05-11T00:37:34.000Z",4.8,{}],["2016-05-11T00:38:05.000Z",4.3999999999999995,{}],["2016-05-11T00:38:34.000Z",4.8,{}],["2016-05-11T00:39:04.000Z",4.6,{}],["2016-05-11T00:39:34.000Z",5.6,{}],["2016-05-11T00:40:04.000Z",4.8,{}],["2016-05-11T00:40:34.000Z",4.6,{}],["2016-05-11T00:41:04.000Z",4.5,{}],["2016-05-11T00:41:34.000Z",5.5,{}],["2016-05-11T00:42:04.000Z",4.3,{}],["2016-05-11T00:42:34.000Z",4.199999999999999,{}],["2016-05-11T00:43:04.000Z",4.5,{}],["2016-05-11T00:43:34.000Z",4.3,{}],["2016-05-11T00:44:04.000Z",4.3,{}],["2016-05-11T00:44:34.000Z",5.0,{}],["2016-05-11T00:45:04.000Z",4.8,{}],["2016-05-11T00:45:34.000Z",4.3,{}],["2016-05-11T00:46:04.000Z",4.4,{}],["2016-05-11T00:46:34.000Z",4.8,{}],["2016-05-11T00:47:04.000Z",5.0,{}],["2016-05-11T00:47:34.000Z",4.5,{}],["2016-05-11T00:48:04.000Z",5.4,{}],["2016-05-11T00:48:35.000Z",4.5,{}],["2016-05-11T00:49:04.000Z",5.0,{}],["2016-05-11T00:49:34.000Z",4.2,{}],["2016-05-11T00:50:04.000Z",4.7,{}],["2016-05-11T00:50:34.000Z",4.6,{}],["2016-05-11T00:51:04.000Z",4.8,{}],["2016-05-11T00:51:34.000Z",4.7,{}],["2016-05-11T00:52:05.000Z",4.5,{}],["2016-05-11T00:52:34.000Z",4.3,{}],["2016-05-11T00:53:05.000Z",4.7,{}],["2016-05-11T00:53:35.000Z",4.2,{}],["2016-05-11T00:54:05.000Z",4.8,{}],["2016-05-11T00:54:35.000Z",4.6,{}],["2016-05-11T00:55:05.000Z",5.0,{}],["2016-05-11T00:55:35.000Z",4.5,{}],["2016-05-11T00:56:05.000Z",5.3999999999999995,{}],["2016-05-11T00:56:35.000Z",4.7,{}],["2016-05-11T00:57:05.000Z",6.0,{}],["2016-05-11T00:57:35.000Z",4.5,{}],["2016-05-11T00:58:05.000Z",4.2,{}],["2016-05-11T00:58:35.000Z",4.8,{}],["2016-05-11T00:59:05.000Z",4.8,{}],["2016-05-11T00:59:35.000Z",4.6,{}],["2016-05-11T01:00:05.000Z",4.3,{}],["2016-05-11T01:00:35.000Z",4.8999999999999995,{}],["2016-05-11T01:01:05.000Z",4.6,{}],["2016-05-11T01:01:35.000Z",4.3,{}],["2016-05-11T01:02:05.000Z",4.6,{}],["2016-05-11T01:02:35.000Z",5.1,{}],["2016-05-11T01:03:05.000Z",4.4,{}],["2016-05-11T01:03:35.000Z",4.4,{}],["2016-05-11T01:04:05.000Z",4.1,{}],["2016-05-11T01:04:35.000Z",4.4,{}],["2016-05-11T01:05:05.000Z",4.2,{}],["2016-05-11T01:05:35.000Z",4.3,{}],["2016-05-11T01:06:05.000Z",4.3,{}],["2016-05-11T01:06:35.000Z",4.3,{}],["2016-05-11T01:07:05.000Z",4.8,{}],["2016-05-11T01:07:35.000Z",4.199999999999999,{}],["2016-05-11T01:08:05.000Z",4.1,{}],["2016-05-11T01:08:35.000Z",4.4,{}],["2016-05-11T01:09:06.000Z",4.699999999999999,{}],["2016-05-11T01:09:35.000Z",5.0,{}],["2016-05-11T01:10:06.000Z",4.8,{}],["2016-05-11T01:10:35.000Z",4.3,{}],["2016-05-11T01:11:05.000Z",5.5,{}],["2016-05-11T01:11:35.000Z",4.2,{}],["2016-05-11T01:12:06.000Z",4.8999999999999995,{}],["2016-05-11T01:12:35.000Z",5.2,{}],["2016-05-11T01:13:05.000Z",4.4,{}],["2016-05-11T01:13:35.000Z",4.0,{}],["2016-05-11T01:14:05.000Z",4.199999999999999,{}],["2016-05-11T01:14:35.000Z",4.2,{}],["2016-05-11T01:15:05.000Z",4.4,{}],["2016-05-11T01:15:35.000Z",4.1,{}],["2016-05-11T01:16:05.000Z",3.9,{}],["2016-05-11T01:16:35.000Z",3.7,{}],["2016-05-11T01:17:05.000Z",4.3,{}],["2016-05-11T01:17:36.000Z",4.1,{}],["2016-05-11T01:18:05.000Z",4.1,{}],["2016-05-11T01:18:35.000Z",4.199999999999999,{}],["2016-05-11T01:19:05.000Z",4.5,{}],["2016-05-11T01:19:35.000Z",4.4,{}],["2016-05-11T01:20:05.000Z",4.1,{}],["2016-05-11T01:20:36.000Z",4.2,{}],["2016-05-11T01:21:06.000Z",4.5,{}],["2016-05-11T01:21:36.000Z",4.2,{}],["2016-05-11T01:22:06.000Z",4.0,{}],["2016-05-11T01:22:36.000Z",4.5,{}],["2016-05-11T01:23:06.000Z",4.2,{}],["2016-05-11T01:23:36.000Z",4.1,{}],["2016-05-11T01:24:06.000Z",3.8,{}],["2016-05-11T01:24:36.000Z",4.199999999999999,{}],["2016-05-11T01:25:06.000Z",4.5,{}],["2016-05-11T01:25:36.000Z",3.9,{}],["2016-05-11T01:26:06.000Z",4.9,{}],["2016-05-11T01:26:36.000Z",4.699999999999999,{}],["2016-05-11T01:27:06.000Z",3.9,{}],["2016-05-11T01:27:36.000Z",4.0,{}],["2016-05-11T01:28:06.000Z",4.5,{}],["2016-05-11T01:28:36.000Z",5.6,{}],["2016-05-11T01:29:06.000Z",4.1,{}],["2016-05-11T01:29:36.000Z",4.7,{}],["2016-05-11T01:30:06.000Z",5.199999999999999,{}],["2016-05-11T01:30:36.000Z",5.9,{}],["2016-05-11T01:31:06.000Z",4.4,{}],["2016-05-11T01:31:36.000Z",4.2,{}],["2016-05-11T01:32:06.000Z",4.6,{}],["2016-05-11T01:32:36.000Z",5.4,{}],["2016-05-11T01:33:06.000Z",4.0,{}],["2016-05-11T01:33:36.000Z",4.3,{}],["2016-05-11T01:34:06.000Z",4.2,{}],["2016-05-11T01:34:36.000Z",4.4,{}],["2016-05-11T01:35:06.000Z",4.0,{}],["2016-05-11T01:35:36.000Z",4.2,{}],["2016-05-11T01:36:06.000Z",4.1,{}],["2016-05-11T01:36:36.000Z",4.3,{}],["2016-05-11T01:37:06.000Z",4.3,{}],["2016-05-11T01:37:36.000Z",4.0,{}],["2016-05-11T01:38:06.000Z",4.199999999999999,{}],["2016-05-11T01:38:36.000Z",4.7,{}],["2016-05-11T01:39:06.000Z",4.0,{}],["2016-05-11T01:39:36.000Z",4.5,{}],["2016-05-11T01:40:06.000Z",3.9,{}],["2016-05-11T01:40:36.000Z",5.4,{}],["2016-05-11T01:41:06.000Z",4.2,{}],["2016-05-11T01:41:36.000Z",4.5,{}],["2016-05-11T01:42:06.000Z",3.8,{}],["2016-05-11T01:42:36.000Z",5.2,{}],["2016-05-11T01:43:06.000Z",5.1,{}],["2016-05-11T01:43:37.000Z",4.7,{}],["2016-05-11T01:44:06.000Z",5.0,{}],["2016-05-11T01:44:36.000Z",4.5,{}],["2016-05-11T01:45:06.000Z",3.9,{}],["2016-05-11T01:45:36.000Z",4.2,{}],["2016-05-11T01:46:06.000Z",4.2,{}],["2016-05-11T01:46:36.000Z",4.3,{}],["2016-05-11T01:47:06.000Z",4.6,{}],["2016-05-11T01:47:36.000Z",4.3,{}],["2016-05-11T01:48:06.000Z",5.0,{}],["2016-05-11T01:48:37.000Z",5.2,{}],["2016-05-11T01:49:07.000Z",4.1,{}],["2016-05-11T01:49:37.000Z",5.199999999999999,{}],["2016-05-11T01:50:07.000Z",5.1,{}],["2016-05-11T01:50:37.000Z",5.5,{}],["2016-05-11T01:51:07.000Z",5.3,{}],["2016-05-11T01:51:37.000Z",4.6,{}],["2016-05-11T01:52:07.000Z",4.2,{}],["2016-05-11T01:52:37.000Z",5.3,{}],["2016-05-11T01:53:07.000Z",4.2,{}],["2016-05-11T01:53:37.000Z",4.6,{}],["2016-05-11T01:54:07.000Z",4.2,{}],["2016-05-11T01:54:37.000Z",5.1,{}],["2016-05-11T01:55:07.000Z",4.4,{}],["2016-05-11T01:55:37.000Z",4.4,{}],["2016-05-11T01:56:07.000Z",4.3,{}],["2016-05-11T01:56:37.000Z",5.3999999999999995,{}],["2016-05-11T01:57:07.000Z",5.1,{}],["2016-05-11T01:57:37.000Z",4.6,{}],["2016-05-11T01:58:07.000Z",4.2,{}],["2016-05-11T01:58:37.000Z",4.8,{}],["2016-05-11T01:59:07.000Z",4.4,{}],["2016-05-11T01:59:37.000Z",4.6,{}],["2016-05-11T02:00:07.000Z",3.9,{}],["2016-05-11T02:00:38.000Z",4.6,{}],["2016-05-11T02:01:07.000Z",5.0,{}],["2016-05-11T02:01:37.000Z",5.2,{}],["2016-05-11T02:02:07.000Z",4.4,{}],["2016-05-11T02:02:38.000Z",5.8999999999999995,{}],["2016-05-11T02:03:07.000Z",5.5,{}],["2016-05-11T02:03:37.000Z",4.5,{}],["2016-05-11T02:04:07.000Z",4.6,{}],["2016-05-11T02:04:37.000Z",5.3,{}],["2016-05-11T02:05:07.000Z",5.6,{}],["2016-05-11T02:05:37.000Z",5.3999999999999995,{}],["2016-05-11T02:06:07.000Z",5.0,{}],["2016-05-11T02:06:38.000Z",4.6,{}],["2016-05-11T02:07:07.000Z",4.5,{}],["2016-05-11T02:07:38.000Z",4.5,{}],["2016-05-11T02:08:07.000Z",4.4,{}],["2016-05-11T02:08:37.000Z",4.7,{}],["2016-05-11T02:09:07.000Z",4.3999999999999995,{}],["2016-05-11T02:09:37.000Z",4.8,{}],["2016-05-11T02:10:07.000Z",4.1,{}],["2016-05-11T02:10:38.000Z",4.699999999999999,{}],["2016-05-11T02:11:09.000Z",5.2,{}],["2016-05-11T02:11:37.000Z",4.9,{}],["2016-05-11T02:12:07.000Z",4.9,{}],["2016-05-11T02:12:37.000Z",4.3,{}],["2016-05-11T02:13:07.000Z",4.4,{}],["2016-05-11T02:13:37.000Z",4.6,{}],["2016-05-11T02:14:08.000Z",4.1,{}],["2016-05-11T02:14:38.000Z",5.0,{}],["2016-05-11T02:15:08.000Z",4.9,{}],["2016-05-11T02:15:38.000Z",4.6,{}],["2016-05-11T02:16:08.000Z",4.2,{}],["2016-05-11T02:16:38.000Z",4.5,{}],["2016-05-11T02:17:08.000Z",5.699999999999999,{}],["2016-05-11T02:17:39.000Z",5.3,{}],["2016-05-11T02:18:08.000Z",4.7,{}],["2016-05-11T02:18:38.000Z",4.8,{}],["2016-05-11T02:19:08.000Z",4.3,{}],["2016-05-11T02:19:38.000Z",4.5,{}],["2016-05-11T02:20:08.000Z",4.699999999999999,{}],["2016-05-11T02:20:38.000Z",4.5,{}],["2016-05-11T02:21:08.000Z",4.7,{}],["2016-05-11T02:21:38.000Z",4.2,{}],["2016-05-11T02:22:08.000Z",4.699999999999999,{}],["2016-05-11T02:22:38.000Z",4.5,{}],["2016-05-11T02:23:08.000Z",4.4,{}],["2016-05-11T02:23:38.000Z",4.3,{}],["2016-05-11T02:24:08.000Z",4.2,{}],["2016-05-11T02:24:38.000Z",4.6,{}],["2016-05-11T02:25:08.000Z",5.8,{}],["2016-05-11T02:25:38.000Z",5.3999999999999995,{}],["2016-05-11T02:26:08.000Z",4.9,{}],["2016-05-11T02:26:38.000Z",6.5,{}],["2016-05-11T02:27:08.000Z",4.5,{}],["2016-05-11T02:27:38.000Z",4.5,{}],["2016-05-11T02:28:08.000Z",4.4,{}],["2016-05-11T02:28:38.000Z",4.6,{}],["2016-05-11T02:29:08.000Z",4.3,{}],["2016-05-11T02:29:39.000Z",4.699999999999999,{}],["2016-05-11T02:30:08.000Z",4.4,{}],["2016-05-11T02:30:38.000Z",4.8,{}],["2016-05-11T02:31:08.000Z",4.5,{}],["2016-05-11T02:31:38.000Z",4.4,{}],["2016-05-11T02:32:09.000Z",4.2,{}],["2016-05-11T02:32:38.000Z",5.1,{}],["2016-05-11T02:33:08.000Z",4.3,{}],["2016-05-11T02:33:38.000Z",4.7,{}],["2016-05-11T02:34:09.000Z",4.5,{}],["2016-05-11T02:34:38.000Z",5.1,{}],["2016-05-11T02:35:08.000Z",4.2,{}],["2016-05-11T02:35:39.000Z",4.5,{}],["2016-05-11T02:36:08.000Z",5.4,{}],["2016-05-11T02:36:39.000Z",4.8,{}],["2016-05-11T02:37:09.000Z",4.2,{}],["2016-05-11T02:37:39.000Z",4.3999999999999995,{}],["2016-05-11T02:38:09.000Z",5.8,{}],["2016-05-11T02:38:39.000Z",5.6,{}],["2016-05-11T02:39:09.000Z",4.3,{}],["2016-05-11T02:39:39.000Z",4.6,{}],["2016-05-11T02:40:09.000Z",4.3,{}],["2016-05-11T02:40:39.000Z",5.0,{}],["2016-05-11T02:41:09.000Z",4.699999999999999,{}],["2016-05-11T02:41:39.000Z",4.6,{}],["2016-05-11T02:42:09.000Z",4.5,{}],["2016-05-11T02:42:39.000Z",5.199999999999999,{}],["2016-05-11T02:43:09.000Z",4.8,{}],["2016-05-11T02:43:39.000Z",4.0,{}],["2016-05-11T02:44:09.000Z",4.0,{}],["2016-05-11T02:44:40.000Z",4.699999999999999,{}],["2016-05-11T02:45:09.000Z",4.0,{}],["2016-05-11T02:45:39.000Z",4.4,{}],["2016-05-11T02:46:09.000Z",4.3,{}],["2016-05-11T02:46:39.000Z",5.0,{}],["2016-05-11T02:47:09.000Z",4.1,{}],["2016-05-11T02:47:40.000Z",4.3,{}],["2016-05-11T02:48:09.000Z",4.199999999999999,{}],["2016-05-11T02:48:40.000Z",4.6,{}],["2016-05-11T02:49:09.000Z",4.4,{}],["2016-05-11T02:49:40.000Z",3.9,{}],["2016-05-11T02:50:10.000Z",4.3,{}],["2016-05-11T02:50:39.000Z",4.5,{}],["2016-05-11T02:51:10.000Z",3.8,{}],["2016-05-11T02:51:39.000Z",4.1,{}],["2016-05-11T02:52:09.000Z",4.2,{}],["2016-05-11T02:52:39.000Z",4.7,{}],["2016-05-11T02:53:10.000Z",4.3,{}],["2016-05-11T02:53:39.000Z",4.5,{}],["2016-05-11T02:54:09.000Z",5.2,{}],["2016-05-11T02:54:39.000Z",4.8999999999999995,{}],["2016-05-11T02:55:10.000Z",4.2,{}],["2016-05-11T02:55:39.000Z",4.7,{}],["2016-05-11T02:56:09.000Z",3.9,{}],["2016-05-11T02:56:39.000Z",5.199999999999999,{}],["2016-05-11T02:57:09.000Z",4.6,{}],["2016-05-11T02:57:39.000Z",5.4,{}],["2016-05-11T02:58:09.000Z",4.5,{}],["2016-05-11T02:58:40.000Z",4.6,{}],["2016-05-11T02:59:10.000Z",4.199999999999999,{}],["2016-05-11T02:59:40.000Z",4.3,{}],["2016-05-11T03:00:10.000Z",4.5,{}],["2016-05-11T03:00:40.000Z",4.5,{}],["2016-05-11T03:01:10.000Z",4.1,{}],["2016-05-11T03:01:40.000Z",4.4,{}],["2016-05-11T03:02:10.000Z",4.7,{}],["2016-05-11T03:02:40.000Z",4.3,{}],["2016-05-11T03:03:10.000Z",5.1,{}],["2016-05-11T03:03:40.000Z",5.0,{}],["2016-05-11T03:04:10.000Z",4.3,{}],["2016-05-11T03:04:41.000Z",5.2,{}],["2016-05-11T03:05:10.000Z",4.199999999999999,{}],["2016-05-11T03:05:40.000Z",4.1,{}],["2016-05-11T03:06:10.000Z",4.4,{}],["2016-05-11T03:06:40.000Z",4.3,{}],["2016-05-11T03:07:10.000Z",4.1,{}],["2016-05-11T03:07:40.000Z",4.1,{}],["2016-05-11T03:08:10.000Z",4.2,{}],["2016-05-11T03:08:40.000Z",4.2,{}],["2016-05-11T03:09:10.000Z",4.1,{}],["2016-05-11T03:09:40.000Z",4.2,{}],["2016-05-11T03:10:10.000Z",4.3,{}],["2016-05-11T03:10:40.000Z",4.1,{}],["2016-05-11T03:11:10.000Z",3.9,{}],["2016-05-11T03:11:40.000Z",5.1,{}],["2016-05-11T03:12:10.000Z",5.699999999999999,{}],["2016-05-11T03:12:40.000Z",4.7,{}],["2016-05-11T03:13:10.000Z",4.4,{}],["2016-05-11T03:13:41.000Z",5.6,{}],["2016-05-11T03:14:10.000Z",5.1,{}],["2016-05-11T03:14:40.000Z",5.7,{}],["2016-05-11T03:15:10.000Z",4.4,{}],["2016-05-11T03:15:40.000Z",5.4,{}],["2016-05-11T03:16:10.000Z",5.0,{}],["2016-05-11T03:16:40.000Z",4.6,{}],["2016-05-11T03:17:10.000Z",4.6,{}],["2016-05-11T03:17:40.000Z",4.5,{}],["2016-05-11T03:18:11.000Z",4.4,{}],["2016-05-11T03:18:40.000Z",4.6,{}],["2016-05-11T03:19:11.000Z",4.4,{}],["2016-05-11T03:19:40.000Z",4.6,{}],["2016-05-11T03:20:10.000Z",5.7,{}],["2016-05-11T03:20:41.000Z",4.3999999999999995,{}],["2016-05-11T03:21:11.000Z",4.7,{}],["2016-05-11T03:21:41.000Z",4.7,{}],["2016-05-11T03:22:11.000Z",4.8,{}],["2016-05-11T03:22:41.000Z",4.699999999999999,{}],["2016-05-11T03:23:11.000Z",5.2,{}],["2016-05-11T03:23:41.000Z",4.5,{}],["2016-05-11T03:24:11.000Z",4.8999999999999995,{}],["2016-05-11T03:24:41.000Z",4.6,{}],["2016-05-11T03:25:11.000Z",4.3,{}],["2016-05-11T03:25:41.000Z",4.6,{}],["2016-05-11T03:26:11.000Z",5.2,{}],["2016-05-11T03:26:41.000Z",6.199999999999999,{}],["2016-05-11T03:27:11.000Z",4.5,{}],["2016-05-11T03:27:41.000Z",4.5,{}],["2016-05-11T03:28:11.000Z",5.5,{}],["2016-05-11T03:28:41.000Z",5.6,{}],["2016-05-11T03:29:11.000Z",5.4,{}],["2016-05-11T03:29:41.000Z",4.5,{}],["2016-05-11T03:30:11.000Z",4.6,{}],["2016-05-11T03:30:41.000Z",5.5,{}],["2016-05-11T03:31:11.000Z",5.4,{}],["2016-05-11T03:31:41.000Z",5.8,{}],["2016-05-11T03:32:11.000Z",5.3999999999999995,{}],["2016-05-11T03:32:41.000Z",5.5,{}],["2016-05-11T03:33:11.000Z",4.6,{}],["2016-05-11T03:33:41.000Z",5.7,{}],["2016-05-11T03:34:11.000Z",4.8,{}],["2016-05-11T03:34:41.000Z",5.1,{}],["2016-05-11T03:35:11.000Z",4.6,{}],["2016-05-11T03:35:41.000Z",4.6,{}],["2016-05-11T03:36:11.000Z",4.8,{}],["2016-05-11T03:36:41.000Z",4.6,{}],["2016-05-11T03:37:11.000Z",4.5,{}],["2016-05-11T03:37:42.000Z",4.7,{}],["2016-05-11T03:38:11.000Z",4.8,{}],["2016-05-11T03:38:41.000Z",4.8,{}],["2016-05-11T03:39:11.000Z",4.5,{}],["2016-05-11T03:39:41.000Z",4.5,{}],["2016-05-11T03:40:11.000Z",4.699999999999999,{}],["2016-05-11T03:40:41.000Z",5.1,{}],["2016-05-11T03:41:11.000Z",4.3,{}],["2016-05-11T03:41:41.000Z",4.7,{}],["2016-05-11T03:42:11.000Z",4.8,{}],["2016-05-11T03:42:41.000Z",4.9,{}],["2016-05-11T03:43:11.000Z",4.6,{}],["2016-05-11T03:43:41.000Z",4.4,{}],["2016-05-11T03:44:12.000Z",4.8,{}],["2016-05-11T03:44:42.000Z",5.0,{}],["2016-05-11T03:45:12.000Z",4.4,{}],["2016-05-11T03:45:42.000Z",5.0,{}],["2016-05-11T03:46:12.000Z",5.9,{}],["2016-05-11T03:46:42.000Z",5.1,{}],["2016-05-11T03:47:12.000Z",4.3999999999999995,{}],["2016-05-11T03:47:42.000Z",4.7,{}],["2016-05-11T03:48:12.000Z",4.4,{}],["2016-05-11T03:48:42.000Z",5.199999999999999,{}],["2016-05-11T03:49:12.000Z",4.5,{}],["2016-05-11T03:49:42.000Z",4.5,{}],["2016-05-11T03:50:12.000Z",4.5,{}],["2016-05-11T03:50:42.000Z",5.199999999999999,{}],["2016-05-11T03:51:12.000Z",4.6,{}],["2016-05-11T03:51:42.000Z",4.5,{}],["2016-05-11T03:52:12.000Z",4.6,{}],["2016-05-11T03:52:42.000Z",5.2,{}],["2016-05-11T03:53:12.000Z",4.3,{}],["2016-05-11T03:53:42.000Z",4.7,{}],["2016-05-11T03:54:12.000Z",4.6,{}],["2016-05-11T03:54:42.000Z",5.6,{}],["2016-05-11T03:55:12.000Z",4.5,{}],["2016-05-11T03:55:42.000Z",7.6,{}],["2016-05-11T03:56:12.000Z",5.8,{}],["2016-05-11T03:56:42.000Z",4.8,{}],["2016-05-11T03:57:12.000Z",4.4,{}],["2016-05-11T03:57:42.000Z",4.8999999999999995,{}],["2016-05-11T03:58:12.000Z",5.7,{}],["2016-05-11T03:58:42.000Z",5.3999999999999995,{}],["2016-05-11T03:59:12.000Z",5.0,{}],["2016-05-11T03:59:42.000Z",5.8,{}],["2016-05-11T04:00:12.000Z",4.5,{}],["2016-05-11T04:00:42.000Z",4.6,{}],["2016-05-11T04:01:13.000Z",5.6,{}],["2016-05-11T04:01:42.000Z",6.1,{}],["2016-05-11T04:02:12.000Z",4.6,{}],["2016-05-11T04:02:42.000Z",4.4,{}],["2016-05-11T04:03:12.000Z",4.6,{}],["2016-05-11T04:03:43.000Z",5.1,{}],["2016-05-11T04:04:13.000Z",5.7,{}],["2016-05-11T04:04:43.000Z",4.7,{}],["2016-05-11T04:05:13.000Z",4.199999999999999,{}],["2016-05-11T04:05:43.000Z",4.9,{}],["2016-05-11T04:06:13.000Z",4.6,{}],["2016-05-11T04:06:43.000Z",5.2,{}],["2016-05-11T04:07:13.000Z",4.1,{}],["2016-05-11T04:07:43.000Z",4.8999999999999995,{}],["2016-05-11T04:08:13.000Z",4.3,{}],["2016-05-11T04:08:43.000Z",4.4,{}],["2016-05-11T04:09:13.000Z",4.5,{}],["2016-05-11T04:09:43.000Z",4.8,{}],["2016-05-11T04:10:13.000Z",4.7,{}],["2016-05-11T04:10:43.000Z",5.0,{}],["2016-05-11T04:11:13.000Z",4.3,{}],["2016-05-11T04:11:43.000Z",4.8,{}],["2016-05-11T04:12:13.000Z",5.2,{}],["2016-05-11T04:12:43.000Z",4.4,{}],["2016-05-11T04:13:13.000Z",4.3999999999999995,{}],["2016-05-11T04:13:43.000Z",4.6,{}],["2016-05-11T04:14:13.000Z",4.5,{}],["2016-05-11T04:14:44.000Z",4.8,{}],["2016-05-11T04:15:14.000Z",4.5,{}],["2016-05-11T04:15:43.000Z",4.9,{}],["2016-05-11T04:16:13.000Z",5.1,{}],["2016-05-11T04:16:43.000Z",4.3999999999999995,{}],["2016-05-11T04:17:13.000Z",4.2,{}],["2016-05-11T04:17:43.000Z",5.2,{}],["2016-05-11T04:18:13.000Z",4.8999999999999995,{}],["2016-05-11T04:18:43.000Z",4.5,{}],["2016-05-11T04:19:14.000Z",5.1,{}],["2016-05-11T04:19:44.000Z",4.4,{}],["2016-05-11T04:20:13.000Z",5.1,{}],["2016-05-11T04:20:43.000Z",5.3,{}],["2016-05-11T04:21:13.000Z",4.4,{}],["2016-05-11T04:21:43.000Z",4.6,{}],["2016-05-11T04:22:13.000Z",4.6,{}],["2016-05-11T04:22:43.000Z",4.9,{}],["2016-05-11T04:23:14.000Z",3.9,{}],["2016-05-11T04:23:45.000Z",7.4,{}],["2016-05-11T04:24:14.000Z",4.199999999999999,{}],["2016-05-11T04:24:43.000Z",4.1,{}],["2016-05-11T04:25:14.000Z",4.4,{}],["2016-05-11T04:25:43.000Z",5.199999999999999,{}],["2016-05-11T04:26:14.000Z",4.3,{}],["2016-05-11T04:26:43.000Z",4.1,{}],["2016-05-11T04:27:15.000Z",4.5,{}],["2016-05-11T04:27:44.000Z",4.8,{}],["2016-05-11T04:28:14.000Z",4.1,{}],["2016-05-11T04:28:44.000Z",4.1,{}],["2016-05-11T04:29:14.000Z",4.4,{}],["2016-05-11T04:29:44.000Z",4.7,{}],["2016-05-11T04:30:14.000Z",4.3,{}],["2016-05-11T04:30:44.000Z",3.9,{}],["2016-05-11T04:31:14.000Z",3.9,{}],["2016-05-11T04:31:44.000Z",4.2,{}],["2016-05-11T04:32:14.000Z",4.3,{}],["2016-05-11T04:32:44.000Z",4.4,{}],["2016-05-11T04:33:14.000Z",4.3,{}],["2016-05-11T04:33:44.000Z",4.6,{}],["2016-05-11T04:34:14.000Z",4.3,{}],["2016-05-11T04:34:44.000Z",4.2,{}],["2016-05-11T04:35:14.000Z",4.1,{}],["2016-05-11T04:35:44.000Z",4.5,{}],["2016-05-11T04:36:14.000Z",5.1,{}],["2016-05-11T04:36:44.000Z",4.3,{}],["2016-05-11T04:37:14.000Z",4.1,{}],["2016-05-11T04:37:44.000Z",5.0,{}],["2016-05-11T04:38:14.000Z",4.5,{}],["2016-05-11T04:38:44.000Z",5.2,{}],["2016-05-11T04:39:14.000Z",4.4,{}],["2016-05-11T04:39:44.000Z",4.8,{}],["2016-05-11T04:40:14.000Z",4.3,{}],["2016-05-11T04:40:44.000Z",4.3,{}],["2016-05-11T04:41:14.000Z",4.4,{}],["2016-05-11T04:41:44.000Z",4.5,{}],["2016-05-11T04:42:14.000Z",4.4,{}],["2016-05-11T04:42:44.000Z",4.1,{}],["2016-05-11T04:43:14.000Z",4.3,{}],["2016-05-11T04:43:44.000Z",4.5,{}],["2016-05-11T04:44:14.000Z",4.4,{}],["2016-05-11T04:44:44.000Z",4.1,{}],["2016-05-11T04:45:14.000Z",4.4,{}],["2016-05-11T04:45:44.000Z",4.8999999999999995,{}],["2016-05-11T04:46:15.000Z",4.2,{}],["2016-05-11T04:46:45.000Z",4.2,{}],["2016-05-11T04:47:14.000Z",4.3,{}],["2016-05-11T04:47:44.000Z",4.5,{}],["2016-05-11T04:48:14.000Z",4.4,{}],["2016-05-11T04:48:44.000Z",4.1,{}],["2016-05-11T04:49:14.000Z",4.3,{}],["2016-05-11T04:49:44.000Z",4.7,{}],["2016-05-11T04:50:14.000Z",4.3999999999999995,{}],["2016-05-11T04:50:44.000Z",5.2,{}],["2016-05-11T04:51:14.000Z",4.1,{}],["2016-05-11T04:51:44.000Z",4.6,{}],["2016-05-11T04:52:15.000Z",4.3,{}],["2016-05-11T04:52:45.000Z",4.3,{}],["2016-05-11T04:53:15.000Z",5.8999999999999995,{}],["2016-05-11T04:53:44.000Z",4.3,{}],["2016-05-11T04:54:14.000Z",4.7,{}],["2016-05-11T04:54:44.000Z",5.0,{}],["2016-05-11T04:55:15.000Z",4.8,{}],["2016-05-11T04:55:45.000Z",5.1,{}],["2016-05-11T04:56:15.000Z",4.2,{}],["2016-05-11T04:56:45.000Z",5.5,{}],["2016-05-11T04:57:15.000Z",7.199999999999999,{}],["2016-05-11T04:57:45.000Z",6.9,{}],["2016-05-11T04:58:15.000Z",5.8,{}],["2016-05-11T04:58:45.000Z",7.0,{}],["2016-05-11T04:59:15.000Z",7.0,{}],["2016-05-11T04:59:46.000Z",5.6,{}],["2016-05-11T05:00:15.000Z",4.6,{}],["2016-05-11T05:00:45.000Z",5.1,{}],["2016-05-11T05:01:15.000Z",5.1,{}],["2016-05-11T05:01:45.000Z",4.6,{}],["2016-05-11T05:02:15.000Z",4.7,{}],["2016-05-11T05:02:45.000Z",5.3,{}],["2016-05-11T05:03:15.000Z",4.6,{}],["2016-05-11T05:03:45.000Z",4.7,{}],["2016-05-11T05:04:15.000Z",4.5,{}],["2016-05-11T05:04:45.000Z",5.5,{}],["2016-05-11T05:05:15.000Z",4.8999999999999995,{}],["2016-05-11T05:05:45.000Z",4.9,{}],["2016-05-11T05:06:15.000Z",5.6,{}],["2016-05-11T05:06:45.000Z",4.3,{}],["2016-05-11T05:07:15.000Z",5.5,{}],["2016-05-11T05:07:45.000Z",4.4,{}],["2016-05-11T05:08:15.000Z",4.9,{}],["2016-05-11T05:08:45.000Z",5.5,{}],["2016-05-11T05:09:15.000Z",5.699999999999999,{}],["2016-05-11T05:09:46.000Z",4.5,{}],["2016-05-11T05:10:15.000Z",4.4,{}],["2016-05-11T05:10:45.000Z",4.5,{}],["2016-05-11T05:11:15.000Z",5.199999999999999,{}],["2016-05-11T05:11:45.000Z",4.6,{}],["2016-05-11T05:12:15.000Z",5.3,{}],["2016-05-11T05:12:45.000Z",5.5,{}],["2016-05-11T05:13:15.000Z",5.199999999999999,{}],["2016-05-11T05:13:45.000Z",5.4,{}],["2016-05-11T05:14:15.000Z",4.9,{}],["2016-05-11T05:14:45.000Z",4.6,{}],["2016-05-11T05:15:16.000Z",4.9,{}],["2016-05-11T05:15:46.000Z",4.4,{}],["2016-05-11T05:16:15.000Z",4.6,{}],["2016-05-11T05:16:46.000Z",4.199999999999999,{}],["2016-05-11T05:17:16.000Z",5.1,{}],["2016-05-11T05:17:45.000Z",4.3,{}],["2016-05-11T05:18:15.000Z",4.5,{}],["2016-05-11T05:18:46.000Z",4.6,{}],["2016-05-11T05:19:15.000Z",4.8,{}],["2016-05-11T05:19:46.000Z",4.6,{}],["2016-05-11T05:20:15.000Z",4.6,{}],["2016-05-11T05:20:45.000Z",4.4,{}],["2016-05-11T05:21:16.000Z",5.3,{}],["2016-05-11T05:21:46.000Z",4.7,{}],["2016-05-11T05:22:16.000Z",5.4,{}],["2016-05-11T05:22:46.000Z",6.4,{}],["2016-05-11T05:23:16.000Z",4.8999999999999995,{}],["2016-05-11T05:23:46.000Z",4.5,{}],["2016-05-11T05:24:16.000Z",4.9,{}],["2016-05-11T05:24:46.000Z",5.3,{}],["2016-05-11T05:25:16.000Z",5.5,{}],["2016-05-11T05:25:46.000Z",5.3,{}],["2016-05-11T05:26:16.000Z",4.9,{}],["2016-05-11T05:26:46.000Z",4.8,{}],["2016-05-11T05:27:17.000Z",4.4,{}],["2016-05-11T05:27:46.000Z",4.5,{}],["2016-05-11T05:28:16.000Z",4.8999999999999995,{}],["2016-05-11T05:28:46.000Z",5.0,{}],["2016-05-11T05:29:16.000Z",4.5,{}],["2016-05-11T05:29:46.000Z",4.8999999999999995,{}],["2016-05-11T05:30:16.000Z",4.8,{}],["2016-05-11T05:30:46.000Z",4.6,{}],["2016-05-11T05:31:16.000Z",4.6,{}],["2016-05-11T05:31:46.000Z",5.7,{}],["2016-05-11T05:32:16.000Z",4.5,{}],["2016-05-11T05:32:46.000Z",4.7,{}],["2016-05-11T05:33:16.000Z",4.8999999999999995,{}],["2016-05-11T05:33:46.000Z",4.3,{}],["2016-05-11T05:34:16.000Z",4.2,{}],["2016-05-11T05:34:47.000Z",5.6,{}],["2016-05-11T05:35:16.000Z",4.4,{}],["2016-05-11T05:35:46.000Z",4.3999999999999995,{}],["2016-05-11T05:36:16.000Z",4.8,{}],["2016-05-11T05:36:46.000Z",4.6,{}],["2016-05-11T05:37:16.000Z",4.8999999999999995,{}],["2016-05-11T05:37:46.000Z",4.6,{}],["2016-05-11T05:38:16.000Z",4.5,{}],["2016-05-11T05:38:46.000Z",6.0,{}],["2016-05-11T05:39:16.000Z",5.4,{}],["2016-05-11T05:39:46.000Z",6.1,{}],["2016-05-11T05:40:16.000Z",5.4,{}],["2016-05-11T05:40:46.000Z",5.1,{}],["2016-05-11T05:41:16.000Z",4.8,{}],["2016-05-11T05:41:46.000Z",4.5,{}],["2016-05-11T05:42:16.000Z",5.6,{}],["2016-05-11T05:42:46.000Z",5.7,{}],["2016-05-11T05:43:16.000Z",5.199999999999999,{}],["2016-05-11T05:43:46.000Z",4.3,{}],["2016-05-11T05:44:16.000Z",4.5,{}],["2016-05-11T05:44:47.000Z",4.5,{}],["2016-05-11T05:45:16.000Z",5.6,{}],["2016-05-11T05:45:46.000Z",4.3,{}],["2016-05-11T05:46:17.000Z",5.199999999999999,{}],["2016-05-11T05:46:46.000Z",4.7,{}],["2016-05-11T05:47:16.000Z",4.8,{}],["2016-05-11T05:47:46.000Z",4.3,{}],["2016-05-11T05:48:16.000Z",4.8,{}],["2016-05-11T05:48:46.000Z",5.2,{}],["2016-05-11T05:49:16.000Z",4.7,{}],["2016-05-11T05:49:47.000Z",4.699999999999999,{}],["2016-05-11T05:50:17.000Z",4.3,{}],["2016-05-11T05:50:47.000Z",4.1,{}],["2016-05-11T05:51:18.000Z",4.6,{}],["2016-05-11T05:51:47.000Z",4.3,{}],["2016-05-11T05:52:17.000Z",4.7,{}],["2016-05-11T05:52:47.000Z",4.5,{}],["2016-05-11T05:53:17.000Z",5.7,{}],["2016-05-11T05:53:47.000Z",4.6,{}],["2016-05-11T05:54:17.000Z",4.1,{}],["2016-05-11T05:54:47.000Z",4.1,{}],["2016-05-11T05:55:17.000Z",4.9,{}],["2016-05-11T05:55:47.000Z",4.3,{}],["2016-05-11T05:56:17.000Z",3.9,{}],["2016-05-11T05:56:47.000Z",5.4,{}],["2016-05-11T05:57:18.000Z",5.6,{}],["2016-05-11T05:57:47.000Z",4.3,{}],["2016-05-11T05:58:17.000Z",4.7,{}],["2016-05-11T05:58:47.000Z",5.0,{}],["2016-05-11T05:59:17.000Z",4.5,{}],["2016-05-11T05:59:47.000Z",4.5,{}],["2016-05-11T06:00:17.000Z",4.9,{}],["2016-05-11T06:00:47.000Z",4.7,{}],["2016-05-11T06:01:17.000Z",5.1,{}],["2016-05-11T06:01:47.000Z",4.9,{}],["2016-05-11T06:02:18.000Z",4.3,{}],["2016-05-11T06:02:47.000Z",4.699999999999999,{}],["2016-05-11T06:03:17.000Z",5.2,{}],["2016-05-11T06:03:47.000Z",4.9,{}],["2016-05-11T06:04:17.000Z",5.1,{}],["2016-05-11T06:04:47.000Z",4.2,{}],["2016-05-11T06:05:17.000Z",3.9,{}],["2016-05-11T06:05:47.000Z",4.1,{}],["2016-05-11T06:06:17.000Z",5.2,{}],["2016-05-11T06:06:47.000Z",4.8999999999999995,{}],["2016-05-11T06:07:17.000Z",6.0,{}],["2016-05-11T06:07:47.000Z",5.1,{}],["2016-05-11T06:08:17.000Z",5.4,{}],["2016-05-11T06:08:47.000Z",4.199999999999999,{}],["2016-05-11T06:09:17.000Z",4.3,{}],["2016-05-11T06:09:47.000Z",4.1,{}],["2016-05-11T06:10:17.000Z",4.6,{}],["2016-05-11T06:10:47.000Z",4.3,{}],["2016-05-11T06:11:18.000Z",4.9,{}],["2016-05-11T06:11:47.000Z",4.1,{}],["2016-05-11T06:12:17.000Z",4.3,{}],["2016-05-11T06:12:47.000Z",4.2,{}],["2016-05-11T06:13:17.000Z",4.5,{}],["2016-05-11T06:13:48.000Z",4.199999999999999,{}],["2016-05-11T06:14:17.000Z",4.3,{}],["2016-05-11T06:14:47.000Z",5.0,{}],["2016-05-11T06:15:18.000Z",5.8,{}],["2016-05-11T06:15:48.000Z",4.8,{}],["2016-05-11T06:16:18.000Z",4.5,{}],["2016-05-11T06:16:48.000Z",4.7,{}],["2016-05-11T06:17:19.000Z",5.3,{}],["2016-05-11T06:17:48.000Z",6.3,{}],["2016-05-11T06:18:18.000Z",8.2,{}],["2016-05-11T06:18:48.000Z",6.0,{}],["2016-05-11T06:19:18.000Z",5.6,{}],["2016-05-11T06:19:48.000Z",5.2,{}],["2016-05-11T06:20:18.000Z",5.1,{}],["2016-05-11T06:20:48.000Z",6.4,{}],["2016-05-11T06:21:18.000Z",4.8999999999999995,{}],["2016-05-11T06:21:49.000Z",5.1,{}],["2016-05-11T06:22:18.000Z",4.4,{}],["2016-05-11T06:22:48.000Z",5.0,{}],["2016-05-11T06:23:19.000Z",4.9,{}],["2016-05-11T06:23:48.000Z",4.7,{}],["2016-05-11T06:24:18.000Z",4.699999999999999,{}],["2016-05-11T06:24:48.000Z",5.0,{}],["2016-05-11T06:25:18.000Z",4.4,{}],["2016-05-11T06:25:48.000Z",4.5,{}],["2016-05-11T06:26:18.000Z",4.6,{}],["2016-05-11T06:26:49.000Z",4.5,{}],["2016-05-11T06:27:18.000Z",4.2,{}],["2016-05-11T06:27:48.000Z",4.5,{}],["2016-05-11T06:28:18.000Z",4.6,{}],["2016-05-11T06:28:48.000Z",4.9,{}],["2016-05-11T06:29:18.000Z",4.8,{}],["2016-05-11T06:29:49.000Z",5.0,{}],["2016-05-11T06:30:18.000Z",5.1,{}],["2016-05-11T06:30:48.000Z",6.0,{}],["2016-05-11T06:31:18.000Z",5.3,{}],["2016-05-11T06:31:48.000Z",5.3,{}],["2016-05-11T06:32:19.000Z",5.5,{}],["2016-05-11T06:32:48.000Z",5.8999999999999995,{}],["2016-05-11T06:33:18.000Z",7.8,{}],["2016-05-11T06:33:48.000Z",7.9,{}],["2016-05-11T06:34:18.000Z",7.699999999999999,{}],["2016-05-11T06:34:48.000Z",10.0,{}],["2016-05-11T06:35:18.000Z",7.7,{}],["2016-05-11T06:35:48.000Z",8.5,{}],["2016-05-11T06:36:18.000Z",9.5,{}],["2016-05-11T06:36:48.000Z",10.9,{}],["2016-05-11T06:37:18.000Z",9.1,{}],["2016-05-11T06:37:49.000Z",8.2,{}],["2016-05-11T06:38:19.000Z",8.299999999999999,{}],["2016-05-11T06:38:49.000Z",7.8,{}],["2016-05-11T06:39:19.000Z",9.0,{}],["2016-05-11T06:39:49.000Z",8.2,{}],["2016-05-11T06:40:19.000Z",6.7,{}],["2016-05-11T06:40:49.000Z",6.9,{}],["2016-05-11T06:41:19.000Z",7.1,{}],["2016-05-11T06:41:49.000Z",6.9,{}],["2016-05-11T06:42:19.000Z",6.8999999999999995,{}],["2016-05-11T06:42:49.000Z",7.4,{}],["2016-05-11T06:43:19.000Z",6.5,{}],["2016-05-11T06:43:49.000Z",6.9,{}],["2016-05-11T06:44:19.000Z",6.7,{}],["2016-05-11T06:44:49.000Z",8.0,{}],["2016-05-11T06:45:19.000Z",7.0,{}],["2016-05-11T06:45:49.000Z",6.4,{}],["2016-05-11T06:46:19.000Z",5.7,{}],["2016-05-11T06:46:49.000Z",5.8,{}],["2016-05-11T06:47:19.000Z",7.2,{}],["2016-05-11T06:47:49.000Z",7.1,{}],["2016-05-11T06:48:19.000Z",9.0,{}],["2016-05-11T06:48:49.000Z",11.6,{}],["2016-05-11T06:49:19.000Z",10.8,{}],["2016-05-11T06:49:49.000Z",11.5,{}],["2016-05-11T06:50:20.000Z",8.1,{}],["2016-05-11T06:50:49.000Z",9.1,{}],["2016-05-11T06:51:19.000Z",6.9,{}],["2016-05-11T06:51:49.000Z",7.2,{}],["2016-05-11T06:52:19.000Z",7.0,{}],["2016-05-11T06:52:50.000Z",7.0,{}],["2016-05-11T06:53:19.000Z",8.1,{}],["2016-05-11T06:53:49.000Z",8.5,{}],["2016-05-11T06:54:20.000Z",6.8999999999999995,{}],["2016-05-11T06:54:49.000Z",6.9,{}],["2016-05-11T06:55:19.000Z",8.0,{}],["2016-05-11T06:55:49.000Z",7.6,{}],["2016-05-11T06:56:19.000Z",7.199999999999999,{}],["2016-05-11T06:56:49.000Z",7.4,{}],["2016-05-11T06:57:20.000Z",8.0,{}],["2016-05-11T06:57:49.000Z",8.1,{}],["2016-05-11T06:58:19.000Z",7.199999999999999,{}],["2016-05-11T06:58:49.000Z",7.5,{}],["2016-05-11T06:59:19.000Z",8.2,{}],["2016-05-11T06:59:49.000Z",8.6,{}],["2016-05-11T07:00:20.000Z",9.0,{}],["2016-05-11T07:00:50.000Z",8.0,{}],["2016-05-11T07:01:20.000Z",7.8,{}],["2016-05-11T07:01:50.000Z",8.1,{}],["2016-05-11T07:02:20.000Z",7.5,{}],["2016-05-11T07:02:50.000Z",7.3,{}],["2016-05-11T07:03:20.000Z",8.5,{}],["2016-05-11T07:03:50.000Z",8.2,{}],["2016-05-11T07:04:20.000Z",7.6,{}],["2016-05-11T07:04:50.000Z",6.8,{}],["2016-05-11T07:05:20.000Z",7.0,{}],["2016-05-11T07:05:50.000Z",7.4,{}],["2016-05-11T07:06:20.000Z",7.2,{}],["2016-05-11T07:06:50.000Z",7.3,{}],["2016-05-11T07:07:20.000Z",6.9,{}],["2016-05-11T07:07:50.000Z",6.3,{}],["2016-05-11T07:08:20.000Z",7.199999999999999,{}],["2016-05-11T07:08:50.000Z",8.6,{}],["2016-05-11T07:09:20.000Z",7.4,{}],["2016-05-11T07:09:50.000Z",8.0,{}],["2016-05-11T07:10:20.000Z",7.6,{}],["2016-05-11T07:10:50.000Z",7.2,{}],["2016-05-11T07:11:20.000Z",7.2,{}],["2016-05-11T07:11:50.000Z",7.8999999999999995,{}],["2016-05-11T07:12:20.000Z",7.0,{}],["2016-05-11T07:12:50.000Z",7.1,{}],["2016-05-11T07:13:20.000Z",7.1,{}],["2016-05-11T07:13:50.000Z",7.6,{}],["2016-05-11T07:14:20.000Z",7.4,{}],["2016-05-11T07:14:50.000Z",7.6,{}],["2016-05-11T07:15:20.000Z",7.4,{}],["2016-05-11T07:15:50.000Z",7.5,{}],["2016-05-11T07:16:20.000Z",7.7,{}],["2016-05-11T07:16:50.000Z",7.0,{}],["2016-05-11T07:17:20.000Z",6.7,{}],["2016-05-11T07:17:50.000Z",8.3,{}],["2016-05-11T07:18:20.000Z",7.2,{}],["2016-05-11T07:18:50.000Z",7.0,{}],["2016-05-11T07:19:20.000Z",7.199999999999999,{}],["2016-05-11T07:19:50.000Z",7.2,{}],["2016-05-11T07:20:20.000Z",7.1,{}],["2016-05-11T07:20:50.000Z",7.3,{}],["2016-05-11T07:21:20.000Z",7.0,{}],["2016-05-11T07:21:50.000Z",7.6,{}],["2016-05-11T07:22:20.000Z",7.5,{}],["2016-05-11T07:22:50.000Z",7.1,{}],["2016-05-11T07:23:20.000Z",7.0,{}],["2016-05-11T07:23:50.000Z",7.8,{}],["2016-05-11T07:24:20.000Z",6.7,{}],["2016-05-11T07:24:51.000Z",6.5,{}],["2016-05-11T07:25:21.000Z",7.1,{}],["2016-05-11T07:25:51.000Z",7.3,{}],["2016-05-11T07:26:21.000Z",7.8999999999999995,{}],["2016-05-11T07:26:51.000Z",6.1,{}],["2016-05-11T07:27:21.000Z",5.6,{}],["2016-05-11T07:27:51.000Z",6.1,{}],["2016-05-11T07:28:21.000Z",6.8,{}],["2016-05-11T07:28:51.000Z",5.7,{}],["2016-05-11T07:29:21.000Z",5.8,{}],["2016-05-11T07:29:51.000Z",6.3,{}],["2016-05-11T07:30:21.000Z",5.6,{}],["2016-05-11T07:30:51.000Z",5.5,{}],["2016-05-11T07:31:21.000Z",6.0,{}],["2016-05-11T07:31:51.000Z",5.8999999999999995,{}],["2016-05-11T07:32:21.000Z",6.7,{}],["2016-05-11T07:32:51.000Z",6.2,{}],["2016-05-11T07:33:21.000Z",5.8,{}],["2016-05-11T07:33:51.000Z",5.699999999999999,{}],["2016-05-11T07:34:21.000Z",7.0,{}],["2016-05-11T07:34:51.000Z",5.3,{}],["2016-05-11T07:35:21.000Z",6.0,{}],["2016-05-11T07:35:51.000Z",5.9,{}],["2016-05-11T07:36:21.000Z",5.9,{}],["2016-05-11T07:36:51.000Z",5.3,{}],["2016-05-11T07:37:21.000Z",5.6,{}],["2016-05-11T07:37:52.000Z",6.5,{}],["2016-05-11T07:38:21.000Z",6.6,{}],["2016-05-11T07:38:51.000Z",6.2,{}],["2016-05-11T07:39:21.000Z",6.6,{}],["2016-05-11T07:39:51.000Z",6.0,{}],["2016-05-11T07:40:22.000Z",5.6,{}],["2016-05-11T07:40:51.000Z",6.8,{}],["2016-05-11T07:41:21.000Z",7.0,{}],["2016-05-11T07:41:51.000Z",7.7,{}],["2016-05-11T07:42:21.000Z",7.7,{}],["2016-05-11T07:42:51.000Z",8.2,{}],["2016-05-11T07:43:21.000Z",6.2,{}],["2016-05-11T07:43:51.000Z",6.6,{}],["2016-05-11T07:44:21.000Z",5.9,{}],["2016-05-11T07:44:51.000Z",6.0,{}],["2016-05-11T07:45:21.000Z",6.0,{}],["2016-05-11T07:45:52.000Z",5.9,{}],["2016-05-11T07:46:21.000Z",7.8999999999999995,{}],["2016-05-11T07:46:52.000Z",5.6,{}],["2016-05-11T07:47:22.000Z",5.6,{}],["2016-05-11T07:47:52.000Z",5.8999999999999995,{}],["2016-05-11T07:48:22.000Z",5.9,{}],["2016-05-11T07:48:52.000Z",5.5,{}],["2016-05-11T07:49:22.000Z",6.6,{}],["2016-05-11T07:49:52.000Z",6.0,{}],["2016-05-11T07:50:22.000Z",5.8,{}],["2016-05-11T07:50:52.000Z",6.3,{}],["2016-05-11T07:51:22.000Z",7.4,{}],["2016-05-11T07:51:52.000Z",7.8,{}],["2016-05-11T07:52:22.000Z",7.2,{}],["2016-05-11T07:52:52.000Z",6.199999999999999,{}],["2016-05-11T07:53:22.000Z",5.5,{}],["2016-05-11T07:53:52.000Z",5.7,{}],["2016-05-11T07:54:22.000Z",5.9,{}],["2016-05-11T07:54:52.000Z",5.8999999999999995,{}],["2016-05-11T07:55:22.000Z",5.6,{}],["2016-05-11T07:55:52.000Z",5.6,{}],["2016-05-11T07:56:22.000Z",6.4,{}],["2016-05-11T07:56:52.000Z",5.8,{}],["2016-05-11T07:57:22.000Z",5.8,{}],["2016-05-11T07:57:52.000Z",7.4,{}],["2016-05-11T07:58:22.000Z",6.5,{}],["2016-05-11T07:58:52.000Z",5.3999999999999995,{}],["2016-05-11T07:59:22.000Z",5.9,{}],["2016-05-11T07:59:52.000Z",5.6,{}],["2016-05-11T08:00:22.000Z",5.699999999999999,{}],["2016-05-11T08:00:53.000Z",6.4,{}],["2016-05-11T08:01:22.000Z",5.8,{}],["2016-05-11T08:01:52.000Z",6.0,{}],["2016-05-11T08:02:22.000Z",6.0,{}],["2016-05-11T08:02:52.000Z",6.8,{}],["2016-05-11T08:03:22.000Z",6.6,{}],["2016-05-11T08:03:52.000Z",7.0,{}],["2016-05-11T08:04:22.000Z",7.0,{}],["2016-05-11T08:04:52.000Z",6.0,{}],["2016-05-11T08:05:23.000Z",5.8,{}],["2016-05-11T08:05:52.000Z",5.8,{}],["2016-05-11T08:06:22.000Z",6.3999999999999995,{}],["2016-05-11T08:06:52.000Z",6.0,{}],["2016-05-11T08:07:22.000Z",5.6,{}],["2016-05-11T08:07:52.000Z",6.0,{}],["2016-05-11T08:08:22.000Z",6.6,{}],["2016-05-11T08:08:53.000Z",6.1,{}],["2016-05-11T08:09:23.000Z",6.5,{}],["2016-05-11T08:09:53.000Z",6.5,{}],["2016-05-11T08:10:23.000Z",7.199999999999999,{}],["2016-05-11T08:10:53.000Z",6.0,{}],["2016-05-11T08:11:23.000Z",6.0,{}],["2016-05-11T08:11:53.000Z",5.8999999999999995,{}],["2016-05-11T08:12:23.000Z",6.5,{}],["2016-05-11T08:12:53.000Z",5.6,{}],["2016-05-11T08:13:23.000Z",6.0,{}],["2016-05-11T08:13:53.000Z",5.8,{}],["2016-05-11T08:14:23.000Z",6.5,{}],["2016-05-11T08:14:53.000Z",6.0,{}],["2016-05-11T08:15:23.000Z",6.199999999999999,{}],["2016-05-11T08:15:53.000Z",6.9,{}],["2016-05-11T08:16:23.000Z",7.4,{}],["2016-05-11T08:16:53.000Z",5.699999999999999,{}],["2016-05-11T08:17:23.000Z",6.1,{}],["2016-05-11T08:17:53.000Z",6.0,{}],["2016-05-11T08:18:23.000Z",6.199999999999999,{}],["2016-05-11T08:18:53.000Z",6.7,{}],["2016-05-11T08:19:23.000Z",6.8,{}],["2016-05-11T08:19:53.000Z",6.6,{}],["2016-05-11T08:20:23.000Z",6.8,{}],["2016-05-11T08:20:53.000Z",6.9,{}],["2016-05-11T08:21:23.000Z",7.1,{}],["2016-05-11T08:21:53.000Z",7.1,{}],["2016-05-11T08:22:23.000Z",7.699999999999999,{}],["2016-05-11T08:22:53.000Z",5.8,{}],["2016-05-11T08:23:23.000Z",6.5,{}],["2016-05-11T08:23:53.000Z",6.3,{}],["2016-05-11T08:24:23.000Z",7.3999999999999995,{}],["2016-05-11T08:24:53.000Z",6.3,{}],["2016-05-11T08:25:23.000Z",6.3,{}],["2016-05-11T08:25:54.000Z",5.699999999999999,{}],["2016-05-11T08:26:23.000Z",6.0,{}],["2016-05-11T08:26:53.000Z",5.9,{}],["2016-05-11T08:27:23.000Z",5.8,{}],["2016-05-11T08:27:53.000Z",5.5,{}],["2016-05-11T08:28:23.000Z",6.3,{}],["2016-05-11T08:28:53.000Z",5.5,{}],["2016-05-11T08:29:23.000Z",6.0,{}],["2016-05-11T08:29:53.000Z",6.0,{}],["2016-05-11T08:30:24.000Z",6.1,{}],["2016-05-11T08:30:53.000Z",6.0,{}],["2016-05-11T08:31:24.000Z",6.2,{}],["2016-05-11T08:31:53.000Z",5.5,{}],["2016-05-11T08:32:23.000Z",6.4,{}],["2016-05-11T08:32:54.000Z",7.1,{}],["2016-05-11T08:33:25.000Z",6.4,{}],["2016-05-11T08:33:54.000Z",5.8,{}],["2016-05-11T08:34:24.000Z",7.5,{}],["2016-05-11T08:34:54.000Z",6.0,{}],["2016-05-11T08:35:24.000Z",7.9,{}],["2016-05-11T08:35:54.000Z",6.699999999999999,{}],["2016-05-11T08:36:24.000Z",6.4,{}],["2016-05-11T08:36:54.000Z",5.6,{}],["2016-05-11T08:37:24.000Z",6.6,{}],["2016-05-11T08:37:54.000Z",6.2,{}],["2016-05-11T08:38:24.000Z",6.6,{}],["2016-05-11T08:38:54.000Z",5.5,{}],["2016-05-11T08:39:24.000Z",6.7,{}],["2016-05-11T08:39:54.000Z",5.8,{}],["2016-05-11T08:40:24.000Z",6.3,{}],["2016-05-11T08:40:54.000Z",5.8,{}],["2016-05-11T08:41:24.000Z",5.8,{}],["2016-05-11T08:41:54.000Z",5.8,{}],["2016-05-11T08:42:24.000Z",6.7,{}],["2016-05-11T08:42:54.000Z",7.1,{}],["2016-05-11T08:43:24.000Z",6.1,{}],["2016-05-11T08:43:54.000Z",6.0,{}],["2016-05-11T08:44:24.000Z",8.1,{}],["2016-05-11T08:44:54.000Z",5.9,{}],["2016-05-11T08:45:24.000Z",6.5,{}],["2016-05-11T08:45:54.000Z",6.4,{}],["2016-05-11T08:46:25.000Z",6.6,{}],["2016-05-11T08:46:54.000Z",5.7,{}],["2016-05-11T08:47:25.000Z",8.0,{}],["2016-05-11T08:47:54.000Z",9.2,{}],["2016-05-11T08:48:25.000Z",9.7,{}],["2016-05-11T08:48:54.000Z",8.8,{}],["2016-05-11T08:49:24.000Z",9.7,{}],["2016-05-11T08:49:54.000Z",8.4,{}],["2016-05-11T08:50:24.000Z",11.4,{}],["2016-05-11T08:50:54.000Z",9.7,{}],["2016-05-11T08:51:24.000Z",10.5,{}],["2016-05-11T08:51:54.000Z",10.9,{}],["2016-05-11T08:52:24.000Z",11.6,{}],["2016-05-11T08:52:54.000Z",12.3,{}],["2016-05-11T08:53:24.000Z",10.9,{}],["2016-05-11T08:53:54.000Z",11.4,{}],["2016-05-11T08:54:25.000Z",10.3,{}],["2016-05-11T08:54:54.000Z",8.799999999999999,{}],["2016-05-11T08:55:24.000Z",5.8,{}],["2016-05-11T08:55:54.000Z",6.0,{}],["2016-05-11T08:56:24.000Z",5.5,{}],["2016-05-11T08:56:55.000Z",6.199999999999999,{}],["2016-05-11T08:57:25.000Z",5.6,{}],["2016-05-11T08:57:55.000Z",5.6,{}],["2016-05-11T08:58:25.000Z",5.8999999999999995,{}],["2016-05-11T08:58:55.000Z",5.6,{}],["2016-05-11T08:59:25.000Z",5.5,{}],["2016-05-11T08:59:55.000Z",5.8,{}],["2016-05-11T09:00:25.000Z",6.3,{}],["2016-05-11T09:00:55.000Z",5.4,{}],["2016-05-11T09:01:26.000Z",5.699999999999999,{}],["2016-05-11T09:01:55.000Z",5.4,{}],["2016-05-11T09:02:25.000Z",6.0,{}],["2016-05-11T09:02:55.000Z",5.7,{}],["2016-05-11T09:03:25.000Z",5.5,{}],["2016-05-11T09:03:55.000Z",5.4,{}],["2016-05-11T09:04:25.000Z",6.3999999999999995,{}],["2016-05-11T09:04:55.000Z",5.7,{}],["2016-05-11T09:05:26.000Z",5.7,{}],["2016-05-11T09:05:55.000Z",5.8999999999999995,{}],["2016-05-11T09:06:25.000Z",6.0,{}],["2016-05-11T09:06:55.000Z",5.8,{}],["2016-05-11T09:07:25.000Z",5.8,{}],["2016-05-11T09:07:55.000Z",6.6,{}],["2016-05-11T09:08:25.000Z",5.6,{}],["2016-05-11T09:08:55.000Z",5.6,{}],["2016-05-11T09:09:25.000Z",5.5,{}],["2016-05-11T09:09:56.000Z",5.4,{}],["2016-05-11T09:10:25.000Z",6.2,{}],["2016-05-11T09:10:55.000Z",5.6,{}],["2016-05-11T09:11:25.000Z",5.7,{}],["2016-05-11T09:11:56.000Z",5.7,{}],["2016-05-11T09:12:25.000Z",7.5,{}],["2016-05-11T09:12:56.000Z",5.699999999999999,{}],["2016-05-11T09:13:25.000Z",5.4,{}],["2016-05-11T09:13:55.000Z",5.9,{}],["2016-05-11T09:14:25.000Z",5.9,{}],["2016-05-11T09:14:55.000Z",5.699999999999999,{}],["2016-05-11T09:15:25.000Z",5.3,{}],["2016-05-11T09:15:55.000Z",5.9,{}],["2016-05-11T09:16:25.000Z",5.699999999999999,{}],["2016-05-11T09:16:55.000Z",5.8999999999999995,{}],["2016-05-11T09:17:25.000Z",5.7,{}],["2016-05-11T09:17:55.000Z",5.7,{}],["2016-05-11T09:18:25.000Z",6.0,{}],["2016-05-11T09:18:55.000Z",7.0,{}],["2016-05-11T09:19:25.000Z",6.9,{}],["2016-05-11T09:19:55.000Z",7.2,{}],["2016-05-11T09:20:26.000Z",5.8999999999999995,{}],["2016-05-11T09:20:55.000Z",5.7,{}],["2016-05-11T09:21:26.000Z",7.2,{}],["2016-05-11T09:21:56.000Z",5.6,{}],["2016-05-11T09:22:26.000Z",6.5,{}],["2016-05-11T09:22:56.000Z",5.8,{}],["2016-05-11T09:23:26.000Z",6.0,{}],["2016-05-11T09:23:56.000Z",5.6,{}],["2016-05-11T09:24:26.000Z",6.5,{}],["2016-05-11T09:24:56.000Z",5.5,{}],["2016-05-11T09:25:26.000Z",5.6,{}],["2016-05-11T09:25:56.000Z",7.4,{}],["2016-05-11T09:26:26.000Z",5.9,{}],["2016-05-11T09:26:56.000Z",5.6,{}],["2016-05-11T09:27:27.000Z",5.9,{}],["2016-05-11T09:27:57.000Z",5.7,{}],["2016-05-11T09:28:26.000Z",6.4,{}],["2016-05-11T09:28:56.000Z",5.9,{}],["2016-05-11T09:29:26.000Z",6.3999999999999995,{}],["2016-05-11T09:29:56.000Z",5.3,{}],["2016-05-11T09:30:26.000Z",6.3,{}],["2016-05-11T09:30:57.000Z",5.6,{}],["2016-05-11T09:31:26.000Z",6.0,{}],["2016-05-11T09:31:56.000Z",5.8,{}],["2016-05-11T09:32:26.000Z",6.2,{}],["2016-05-11T09:32:56.000Z",5.4,{}],["2016-05-11T09:33:26.000Z",6.3,{}],["2016-05-11T09:33:57.000Z",6.0,{}],["2016-05-11T09:34:26.000Z",7.0,{}],["2016-05-11T09:34:56.000Z",6.3999999999999995,{}],["2016-05-11T09:35:26.000Z",7.3,{}],["2016-05-11T09:35:56.000Z",7.0,{}],["2016-05-11T09:36:26.000Z",6.3,{}],["2016-05-11T09:36:56.000Z",7.0,{}],["2016-05-11T09:37:26.000Z",6.3,{}],["2016-05-11T09:37:56.000Z",6.3999999999999995,{}],["2016-05-11T09:38:26.000Z",7.699999999999999,{}],["2016-05-11T09:38:56.000Z",6.3,{}],["2016-05-11T09:39:26.000Z",7.4,{}],["2016-05-11T09:39:56.000Z",6.4,{}],["2016-05-11T09:40:27.000Z",6.3999999999999995,{}],["2016-05-11T09:40:56.000Z",6.0,{}],["2016-05-11T09:41:26.000Z",6.8999999999999995,{}],["2016-05-11T09:41:56.000Z",7.2,{}],["2016-05-11T09:42:26.000Z",6.4,{}],["2016-05-11T09:42:56.000Z",6.1,{}],["2016-05-11T09:43:26.000Z",6.0,{}],["2016-05-11T09:43:57.000Z",6.3,{}],["2016-05-11T09:44:26.000Z",6.1,{}],["2016-05-11T09:44:57.000Z",6.3,{}],["2016-05-11T09:45:27.000Z",5.8999999999999995,{}],["2016-05-11T09:45:57.000Z",6.4,{}],["2016-05-11T09:46:27.000Z",6.3,{}],["2016-05-11T09:46:57.000Z",6.199999999999999,{}],["2016-05-11T09:47:27.000Z",6.1,{}],["2016-05-11T09:47:57.000Z",6.0,{}],["2016-05-11T09:48:27.000Z",6.2,{}],["2016-05-11T09:48:57.000Z",6.0,{}],["2016-05-11T09:49:27.000Z",6.1,{}],["2016-05-11T09:49:57.000Z",6.5,{}],["2016-05-11T09:50:27.000Z",5.9,{}],["2016-05-11T09:50:58.000Z",6.1,{}],["2016-05-11T09:51:27.000Z",6.3,{}],["2016-05-11T09:51:57.000Z",6.7,{}],["2016-05-11T09:52:27.000Z",6.0,{}],["2016-05-11T09:52:57.000Z",6.6,{}],["2016-05-11T09:53:27.000Z",6.1,{}],["2016-05-11T09:53:58.000Z",6.7,{}],["2016-05-11T09:54:28.000Z",6.2,{}],["2016-05-11T09:54:57.000Z",6.3,{}],["2016-05-11T09:55:27.000Z",5.8,{}],["2016-05-11T09:55:57.000Z",6.8,{}],["2016-05-11T09:56:27.000Z",6.4,{}],["2016-05-11T09:56:57.000Z",6.1,{}],["2016-05-11T09:57:27.000Z",6.2,{}],["2016-05-11T09:57:58.000Z",6.8999999999999995,{}],["2016-05-11T09:58:27.000Z",6.0,{}],["2016-05-11T09:58:57.000Z",6.2,{}],["2016-05-11T09:59:27.000Z",6.2,{}],["2016-05-11T09:59:57.000Z",7.8999999999999995,{}],["2016-05-11T10:00:27.000Z",6.2,{}],["2016-05-11T10:00:58.000Z",6.8,{}],["2016-05-11T10:01:27.000Z",6.1,{}],["2016-05-11T10:01:57.000Z",7.1,{}],["2016-05-11T10:02:28.000Z",6.1,{}],["2016-05-11T10:02:57.000Z",6.1,{}],["2016-05-11T10:03:28.000Z",6.3999999999999995,{}],["2016-05-11T10:03:57.000Z",6.5,{}],["2016-05-11T10:04:27.000Z",6.7,{}],["2016-05-11T10:04:57.000Z",6.699999999999999,{}],["2016-05-11T10:05:27.000Z",7.3,{}],["2016-05-11T10:05:57.000Z",7.8,{}],["2016-05-11T10:06:27.000Z",7.8,{}],["2016-05-11T10:06:58.000Z",7.3,{}],["2016-05-11T10:07:28.000Z",6.7,{}],["2016-05-11T10:07:58.000Z",7.0,{}],["2016-05-11T10:08:28.000Z",5.7,{}],["2016-05-11T10:08:58.000Z",5.7,{}],["2016-05-11T10:09:28.000Z",5.8999999999999995,{}],["2016-05-11T10:09:58.000Z",6.5,{}],["2016-05-11T10:10:28.000Z",7.0,{}],["2016-05-11T10:10:58.000Z",5.8999999999999995,{}],["2016-05-11T10:11:28.000Z",6.9,{}],["2016-05-11T10:11:58.000Z",7.1,{}],["2016-05-11T10:12:28.000Z",6.6,{}],["2016-05-11T10:12:58.000Z",5.6,{}],["2016-05-11T10:13:29.000Z",5.8,{}],["2016-05-11T10:13:58.000Z",5.4,{}],["2016-05-11T10:14:28.000Z",6.3,{}],["2016-05-11T10:14:58.000Z",6.3999999999999995,{}],["2016-05-11T10:15:28.000Z",6.3,{}],["2016-05-11T10:15:58.000Z",6.3,{}],["2016-05-11T10:16:28.000Z",6.8,{}],["2016-05-11T10:16:58.000Z",6.6,{}],["2016-05-11T10:17:28.000Z",6.3999999999999995,{}],["2016-05-11T10:17:58.000Z",6.1,{}],["2016-05-11T10:18:28.000Z",6.5,{}],["2016-05-11T10:18:58.000Z",6.3,{}],["2016-05-11T10:19:28.000Z",6.2,{}],["2016-05-11T10:19:58.000Z",6.5,{}],["2016-05-11T10:20:29.000Z",7.0,{}],["2016-05-11T10:20:58.000Z",6.6,{}],["2016-05-11T10:21:28.000Z",7.1,{}],["2016-05-11T10:21:58.000Z",6.1,{}],["2016-05-11T10:22:28.000Z",7.0,{}],["2016-05-11T10:22:58.000Z",7.3999999999999995,{}],["2016-05-11T10:23:28.000Z",6.8,{}],["2016-05-11T10:23:58.000Z",6.9,{}],["2016-05-11T10:24:28.000Z",7.7,{}],["2016-05-11T10:24:58.000Z",6.699999999999999,{}],["2016-05-11T10:25:28.000Z",7.3,{}],["2016-05-11T10:25:58.000Z",6.6,{}],["2016-05-11T10:26:28.000Z",6.3999999999999995,{}],["2016-05-11T10:26:58.000Z",6.7,{}],["2016-05-11T10:27:28.000Z",6.1,{}],["2016-05-11T10:27:58.000Z",5.8,{}],["2016-05-11T10:28:28.000Z",6.3999999999999995,{}],["2016-05-11T10:28:58.000Z",5.6,{}],["2016-05-11T10:29:29.000Z",6.3,{}],["2016-05-11T10:29:59.000Z",5.8999999999999995,{}],["2016-05-11T10:30:29.000Z",6.3,{}],["2016-05-11T10:30:59.000Z",6.1,{}],["2016-05-11T10:31:29.000Z",5.8,{}],["2016-05-11T10:31:59.000Z",6.199999999999999,{}],["2016-05-11T10:32:29.000Z",6.0,{}],["2016-05-11T10:32:59.000Z",5.9,{}],["2016-05-11T10:33:29.000Z",6.0,{}],["2016-05-11T10:33:59.000Z",7.3999999999999995,{}],["2016-05-11T10:34:29.000Z",6.6,{}],["2016-05-11T10:34:59.000Z",6.0,{}],["2016-05-11T10:35:29.000Z",6.0,{}],["2016-05-11T10:36:00.000Z",6.199999999999999,{}],["2016-05-11T10:36:29.000Z",6.5,{}],["2016-05-11T10:36:59.000Z",6.2,{}],["2016-05-11T10:37:29.000Z",5.9,{}],["2016-05-11T10:37:59.000Z",5.8,{}],["2016-05-11T10:38:29.000Z",6.4,{}],["2016-05-11T10:38:59.000Z",5.9,{}],["2016-05-11T10:39:29.000Z",6.7,{}],["2016-05-11T10:40:00.000Z",8.2,{}],["2016-05-11T10:40:29.000Z",6.6,{}],["2016-05-11T10:40:59.000Z",6.1,{}],["2016-05-11T10:41:29.000Z",6.1,{}],["2016-05-11T10:41:59.000Z",6.2,{}],["2016-05-11T10:42:29.000Z",6.5,{}],["2016-05-11T10:43:01.000Z",6.2,{}],["2016-05-11T10:43:29.000Z",6.6,{}],["2016-05-11T10:43:59.000Z",6.2,{}],["2016-05-11T10:44:30.000Z",6.3,{}],["2016-05-11T10:44:59.000Z",5.7,{}],["2016-05-11T10:45:29.000Z",6.199999999999999,{}],["2016-05-11T10:45:59.000Z",6.0,{}],["2016-05-11T10:46:29.000Z",6.5,{}],["2016-05-11T10:46:59.000Z",6.1,{}],["2016-05-11T10:47:30.000Z",6.199999999999999,{}],["2016-05-11T10:48:00.000Z",5.9,{}],["2016-05-11T10:48:29.000Z",6.5,{}],["2016-05-11T10:49:00.000Z",6.3,{}],["2016-05-11T10:49:29.000Z",6.1,{}],["2016-05-11T10:49:59.000Z",5.8,{}],["2016-05-11T10:50:30.000Z",6.6,{}],["2016-05-11T10:50:59.000Z",5.8,{}],["2016-05-11T10:51:29.000Z",7.1,{}],["2016-05-11T10:51:34.000Z",6.8,{}],["2016-05-11T10:51:59.000Z",6.6,{}],["2016-05-11T10:52:04.000Z",6.3,{}],["2016-05-11T10:52:29.000Z",7.3999999999999995,{}],["2016-05-11T10:53:01.000Z",7.5,{}],["2016-05-11T10:53:29.000Z",6.2,{}],["2016-05-11T10:54:00.000Z",5.9,{}],["2016-05-11T10:54:30.000Z",6.5,{}],["2016-05-11T10:55:00.000Z",5.9,{}],["2016-05-11T10:55:30.000Z",6.4,{}],["2016-05-11T10:56:00.000Z",6.1,{}],["2016-05-11T10:56:30.000Z",5.8,{}],["2016-05-11T10:57:00.000Z",7.0,{}],["2016-05-11T10:57:30.000Z",6.6,{}],["2016-05-11T10:58:00.000Z",6.0,{}],["2016-05-11T10:58:30.000Z",7.0,{}],["2016-05-11T10:59:00.000Z",5.9,{}],["2016-05-11T10:59:30.000Z",5.9,{}],["2016-05-11T11:00:00.000Z",7.199999999999999,{}],["2016-05-11T11:00:30.000Z",7.3,{}],["2016-05-11T11:01:00.000Z",6.4,{}],["2016-05-11T11:01:30.000Z",6.3999999999999995,{}],["2016-05-11T11:02:00.000Z",5.9,{}],["2016-05-11T11:02:30.000Z",6.5,{}],["2016-05-11T11:03:00.000Z",6.4,{}],["2016-05-11T11:03:30.000Z",6.3,{}],["2016-05-11T11:04:00.000Z",7.2,{}],["2016-05-11T11:04:30.000Z",6.8,{}],["2016-05-11T11:05:00.000Z",6.0,{}],["2016-05-11T11:05:30.000Z",5.8999999999999995,{}],["2016-05-11T11:06:00.000Z",5.9,{}],["2016-05-11T11:06:30.000Z",7.2,{}],["2016-05-11T11:07:00.000Z",6.3999999999999995,{}],["2016-05-11T11:07:30.000Z",6.0,{}],["2016-05-11T11:08:00.000Z",5.9,{}],["2016-05-11T11:08:30.000Z",6.3,{}],["2016-05-11T11:09:00.000Z",7.8,{}],["2016-05-11T11:09:30.000Z",7.2,{}],["2016-05-11T11:10:00.000Z",6.3999999999999995,{}],["2016-05-11T11:10:30.000Z",6.0,{}],["2016-05-11T11:11:00.000Z",6.5,{}],["2016-05-11T11:11:30.000Z",7.0,{}],["2016-05-11T11:12:01.000Z",6.0,{}],["2016-05-11T11:12:31.000Z",6.3,{}],["2016-05-11T11:13:00.000Z",6.699999999999999,{}],["2016-05-11T11:13:31.000Z",6.699999999999999,{}],["2016-05-11T11:14:00.000Z",7.1,{}],["2016-05-11T11:14:31.000Z",6.3,{}],["2016-05-11T11:15:01.000Z",6.5,{}],["2016-05-11T11:15:31.000Z",7.8,{}],["2016-05-11T11:16:01.000Z",6.8,{}],["2016-05-11T11:16:31.000Z",6.699999999999999,{}],["2016-05-11T11:17:01.000Z",5.8,{}],["2016-05-11T11:17:31.000Z",6.4,{}],["2016-05-11T11:18:01.000Z",6.699999999999999,{}],["2016-05-11T11:18:31.000Z",6.1,{}],["2016-05-11T11:19:01.000Z",6.2,{}],["2016-05-11T11:19:31.000Z",6.4,{}],["2016-05-11T11:20:01.000Z",7.6,{}],["2016-05-11T11:20:31.000Z",7.1,{}],["2016-05-11T11:21:01.000Z",7.2,{}],["2016-05-11T11:21:31.000Z",6.6,{}],["2016-05-11T11:22:01.000Z",6.5,{}],["2016-05-11T11:22:31.000Z",6.699999999999999,{}],["2016-05-11T11:23:01.000Z",7.1,{}],["2016-05-11T11:23:31.000Z",6.5,{}],["2016-05-11T11:24:01.000Z",6.3999999999999995,{}],["2016-05-11T11:24:31.000Z",6.6,{}],["2016-05-11T11:25:01.000Z",6.2,{}],["2016-05-11T11:25:31.000Z",5.8999999999999995,{}],["2016-05-11T11:26:01.000Z",6.5,{}],["2016-05-11T11:26:32.000Z",8.0,{}],["2016-05-11T11:27:01.000Z",6.5,{}],["2016-05-11T11:27:31.000Z",6.8,{}],["2016-05-11T11:28:01.000Z",6.3,{}],["2016-05-11T11:28:31.000Z",8.3,{}],["2016-05-11T11:29:01.000Z",6.199999999999999,{}],["2016-05-11T11:29:31.000Z",7.4,{}],["2016-05-11T11:30:01.000Z",8.0,{}],["2016-05-11T11:30:31.000Z",7.5,{}],["2016-05-11T11:31:01.000Z",6.6,{}],["2016-05-11T11:31:31.000Z",6.9,{}],["2016-05-11T11:32:01.000Z",7.3,{}],["2016-05-11T11:32:31.000Z",7.699999999999999,{}],["2016-05-11T11:33:01.000Z",6.4,{}],["2016-05-11T11:33:31.000Z",7.1,{}],["2016-05-11T11:34:01.000Z",7.8999999999999995,{}],["2016-05-11T11:34:31.000Z",7.2,{}],["2016-05-11T11:35:01.000Z",7.8,{}],["2016-05-11T11:35:31.000Z",6.9,{}],["2016-05-11T11:36:01.000Z",6.2,{}],["2016-05-11T11:36:31.000Z",6.8999999999999995,{}],["2016-05-11T11:37:01.000Z",7.2,{}],["2016-05-11T11:37:32.000Z",6.4,{}],["2016-05-11T11:38:01.000Z",6.3999999999999995,{}],["2016-05-11T11:38:31.000Z",5.5,{}],["2016-05-11T11:39:02.000Z",6.2,{}],["2016-05-11T11:39:32.000Z",4.699999999999999,{}],["2016-05-11T11:40:02.000Z",4.9,{}],["2016-05-11T11:40:32.000Z",4.8,{}],["2016-05-11T11:41:02.000Z",5.5,{}],["2016-05-11T11:41:32.000Z",5.0,{}],["2016-05-11T11:42:02.000Z",5.0,{}],["2016-05-11T11:42:32.000Z",4.4,{}],["2016-05-11T11:43:02.000Z",5.1,{}],["2016-05-11T11:43:32.000Z",4.699999999999999,{}],["2016-05-11T11:44:02.000Z",5.1,{}],["2016-05-11T11:44:32.000Z",4.9,{}],["2016-05-11T11:45:02.000Z",5.3,{}],["2016-05-11T11:45:32.000Z",4.9,{}],["2016-05-11T11:46:02.000Z",5.7,{}],["2016-05-11T11:46:33.000Z",5.3,{}],["2016-05-11T11:47:02.000Z",5.3,{}],["2016-05-11T11:47:32.000Z",5.4,{}],["2016-05-11T11:48:03.000Z",4.8,{}],["2016-05-11T11:48:32.000Z",5.0,{}],["2016-05-11T11:49:02.000Z",4.7,{}],["2016-05-11T11:49:32.000Z",4.699999999999999,{}],["2016-05-11T11:50:02.000Z",5.1,{}],["2016-05-11T11:50:32.000Z",5.5,{}],["2016-05-11T11:51:02.000Z",6.3,{}],["2016-05-11T11:51:32.000Z",4.7,{}],["2016-05-11T11:52:02.000Z",5.0,{}],["2016-05-11T11:52:32.000Z",4.8999999999999995,{}],["2016-05-11T11:53:02.000Z",5.5,{}],["2016-05-11T11:53:32.000Z",4.6,{}],["2016-05-11T11:54:03.000Z",4.5,{}],["2016-05-11T11:54:32.000Z",4.9,{}],["2016-05-11T11:55:02.000Z",5.0,{}],["2016-05-11T11:55:32.000Z",4.8,{}],["2016-05-11T11:56:02.000Z",4.5,{}],["2016-05-11T11:56:32.000Z",5.0,{}],["2016-05-11T11:57:02.000Z",5.2,{}],["2016-05-11T11:57:32.000Z",4.9,{}],["2016-05-11T11:58:02.000Z",4.8999999999999995,{}],["2016-05-11T11:58:32.000Z",4.7,{}],["2016-05-11T11:59:02.000Z",4.9,{}],["2016-05-11T11:59:33.000Z",5.0,{}],["2016-05-11T12:00:03.000Z",4.6,{}],["2016-05-11T12:00:33.000Z",4.6,{}],["2016-05-11T12:01:03.000Z",5.4,{}],["2016-05-11T12:01:33.000Z",5.199999999999999,{}],["2016-05-11T12:02:03.000Z",4.7,{}],["2016-05-11T12:02:33.000Z",5.1,{}],["2016-05-11T12:03:03.000Z",5.1,{}],["2016-05-11T12:03:33.000Z",4.8,{}],["2016-05-11T12:04:03.000Z",4.5,{}],["2016-05-11T12:04:33.000Z",4.5,{}],["2016-05-11T12:05:03.000Z",6.0,{}],["2016-05-11T12:05:33.000Z",6.4,{}],["2016-05-11T12:06:03.000Z",5.3999999999999995,{}],["2016-05-11T12:06:33.000Z",5.3,{}],["2016-05-11T12:07:03.000Z",7.6,{}],["2016-05-11T12:07:33.000Z",6.4,{}],["2016-05-11T12:08:03.000Z",4.8999999999999995,{}],["2016-05-11T12:08:33.000Z",4.7,{}],["2016-05-11T12:09:03.000Z",5.4,{}],["2016-05-11T12:09:33.000Z",5.699999999999999,{}],["2016-05-11T12:10:03.000Z",5.6,{}],["2016-05-11T12:10:33.000Z",5.7,{}],["2016-05-11T12:11:03.000Z",5.8999999999999995,{}],["2016-05-11T12:11:33.000Z",5.9,{}],["2016-05-11T12:12:03.000Z",5.0,{}],["2016-05-11T12:12:33.000Z",5.9,{}],["2016-05-11T12:13:03.000Z",6.3999999999999995,{}],["2016-05-11T12:13:33.000Z",5.5,{}],["2016-05-11T12:14:04.000Z",4.9,{}],["2016-05-11T12:14:33.000Z",5.8,{}],["2016-05-11T12:15:03.000Z",4.3,{}],["2016-05-11T12:15:33.000Z",4.5,{}],["2016-05-11T12:16:03.000Z",4.1,{}],["2016-05-11T12:16:34.000Z",4.199999999999999,{}],["2016-05-11T12:17:03.000Z",4.7,{}],["2016-05-11T12:17:35.000Z",4.4,{}],["2016-05-11T12:18:03.000Z",4.9,{}],["2016-05-11T12:18:33.000Z",4.3,{}],["2016-05-11T12:19:03.000Z",4.7,{}],["2016-05-11T12:19:34.000Z",4.6,{}],["2016-05-11T12:20:03.000Z",4.6,{}],["2016-05-11T12:20:34.000Z",4.2,{}],["2016-05-11T12:21:03.000Z",4.5,{}],["2016-05-11T12:21:34.000Z",4.2,{}],["2016-05-11T12:22:03.000Z",4.699999999999999,{}],["2016-05-11T12:22:34.000Z",4.3,{}],["2016-05-11T12:23:03.000Z",4.1,{}],["2016-05-11T12:23:33.000Z",4.3999999999999995,{}],["2016-05-11T12:24:04.000Z",4.7,{}],["2016-05-11T12:24:33.000Z",4.6,{}],["2016-05-11T12:25:03.000Z",4.4,{}],["2016-05-11T12:25:33.000Z",4.7,{}],["2016-05-11T12:26:03.000Z",4.5,{}],["2016-05-11T12:26:33.000Z",4.6,{}],["2016-05-11T12:27:04.000Z",4.3,{}],["2016-05-11T12:27:34.000Z",4.8,{}],["2016-05-11T12:28:04.000Z",4.4,{}],["2016-05-11T12:28:34.000Z",4.0,{}],["2016-05-11T12:29:04.000Z",4.3999999999999995,{}],["2016-05-11T12:29:07.000Z",4.8,{}],["2016-05-11T12:29:34.000Z",4.7,{}],["2016-05-11T12:29:37.000Z",6.5,{}],["2016-05-11T12:30:04.000Z",4.3,{}],["2016-05-11T12:30:07.000Z",6.4,{}],["2016-05-11T12:30:34.000Z",5.4,{}],["2016-05-11T12:30:37.000Z",6.2,{}],["2016-05-11T12:31:04.000Z",4.1,{}],["2016-05-11T12:31:07.000Z",6.699999999999999,{}],["2016-05-11T12:31:34.000Z",4.3,{}],["2016-05-11T12:31:37.000Z",7.1,{}],["2016-05-11T12:32:04.000Z",4.0,{}],["2016-05-11T12:32:07.000Z",8.3,{}],["2016-05-11T12:32:34.000Z",5.5,{}],["2016-05-11T12:32:37.000Z",6.8999999999999995,{}],["2016-05-11T12:33:04.000Z",4.5,{}],["2016-05-11T12:33:34.000Z",5.7,{}],["2016-05-11T12:34:05.000Z",4.5,{}],["2016-05-11T12:34:34.000Z",5.1,{}],["2016-05-11T12:35:05.000Z",4.5,{}],["2016-05-11T12:35:34.000Z",4.8,{}],["2016-05-11T12:36:04.000Z",4.4,{}],["2016-05-11T12:36:34.000Z",4.4,{}],["2016-05-11T12:37:04.000Z",5.5,{}],["2016-05-11T12:37:34.000Z",6.6,{}],["2016-05-11T12:38:05.000Z",4.4,{}],["2016-05-11T12:38:34.000Z",4.699999999999999,{}],["2016-05-11T12:39:04.000Z",4.9,{}],["2016-05-11T12:39:35.000Z",5.8,{}],["2016-05-11T12:40:04.000Z",4.1,{}],["2016-05-11T12:40:35.000Z",4.0,{}],["2016-05-11T12:41:04.000Z",4.4,{}],["2016-05-11T12:41:34.000Z",5.3,{}],["2016-05-11T12:42:04.000Z",4.3,{}],["2016-05-11T12:42:34.000Z",5.3,{}],["2016-05-11T12:43:04.000Z",3.8,{}],["2016-05-11T12:43:35.000Z",4.6,{}],["2016-05-11T12:44:04.000Z",4.4,{}],["2016-05-11T12:44:35.000Z",5.3,{}],["2016-05-11T12:45:04.000Z",5.8,{}],["2016-05-11T12:45:34.000Z",6.0,{}],["2016-05-11T12:46:04.000Z",5.7,{}],["2016-05-11T12:46:36.000Z",4.3999999999999995,{}],["2016-05-11T12:47:04.000Z",4.199999999999999,{}],["2016-05-11T12:47:35.000Z",4.4,{}],["2016-05-11T12:48:04.000Z",3.8,{}],["2016-05-11T12:48:12.000Z",5.1,{}],["2016-05-11T12:48:35.000Z",3.9,{}],["2016-05-11T12:48:42.000Z",4.2,{}],["2016-05-11T12:49:04.000Z",4.5,{}],["2016-05-11T12:49:12.000Z",4.8,{}],["2016-05-11T12:49:34.000Z",4.8,{}],["2016-05-11T12:49:42.000Z",4.2,{}],["2016-05-11T12:50:04.000Z",3.9,{}],["2016-05-11T12:50:12.000Z",3.8,{}],["2016-05-11T12:50:36.000Z",4.3999999999999995,{}],["2016-05-11T12:50:42.000Z",4.3999999999999995,{}],["2016-05-11T12:51:04.000Z",4.5,{}],["2016-05-11T12:51:13.000Z",5.1,{}],["2016-05-11T12:51:35.000Z",4.6,{}],["2016-05-11T12:51:42.000Z",4.2,{}],["2016-05-11T12:52:05.000Z",4.8999999999999995,{}],["2016-05-11T12:52:12.000Z",4.699999999999999,{}],["2016-05-11T12:52:34.000Z",4.0,{}],["2016-05-11T12:52:42.000Z",3.9,{}],["2016-05-11T12:53:05.000Z",3.9,{}],["2016-05-11T12:53:12.000Z",4.2,{}],["2016-05-11T12:53:35.000Z",4.2,{}],["2016-05-11T12:53:42.000Z",4.3,{}],["2016-05-11T12:54:05.000Z",4.3999999999999995,{}],["2016-05-11T12:54:12.000Z",4.199999999999999,{}],["2016-05-11T12:54:35.000Z",5.0,{}],["2016-05-11T12:54:42.000Z",4.8,{}],["2016-05-11T12:55:05.000Z",4.1,{}],["2016-05-11T12:55:12.000Z",4.9,{}],["2016-05-11T12:55:35.000Z",5.2,{}],["2016-05-11T12:55:42.000Z",4.6,{}],["2016-05-11T12:56:05.000Z",3.9,{}],["2016-05-11T12:56:12.000Z",4.0,{}],["2016-05-11T12:56:35.000Z",4.199999999999999,{}],["2016-05-11T12:56:42.000Z",4.0,{}],["2016-05-11T12:57:05.000Z",4.9,{}],["2016-05-11T12:57:13.000Z",5.5,{}],["2016-05-11T12:57:35.000Z",4.6,{}],["2016-05-11T12:57:42.000Z",4.3,{}],["2016-05-11T12:58:05.000Z",4.0,{}],["2016-05-11T12:58:12.000Z",3.7,{}],["2016-05-11T12:58:35.000Z",4.0,{}],["2016-05-11T12:58:42.000Z",4.1,{}],["2016-05-11T12:59:05.000Z",3.8,{}],["2016-05-11T12:59:12.000Z",4.1,{}],["2016-05-11T12:59:35.000Z",4.2,{}],["2016-05-11T12:59:43.000Z",4.1,{}],["2016-05-11T13:00:05.000Z",4.199999999999999,{}],["2016-05-11T13:00:12.000Z",4.199999999999999,{}],["2016-05-11T13:00:35.000Z",4.0,{}],["2016-05-11T13:00:42.000Z",3.8,{}],["2016-05-11T13:01:05.000Z",4.3,{}],["2016-05-11T13:01:12.000Z",4.7,{}],["2016-05-11T13:01:35.000Z",4.2,{}],["2016-05-11T13:01:42.000Z",4.0,{}],["2016-05-11T13:02:05.000Z",4.0,{}],["2016-05-11T13:02:12.000Z",4.0,{}],["2016-05-11T13:02:35.000Z",4.0,{}],["2016-05-11T13:02:42.000Z",4.1,{}],["2016-05-11T13:03:05.000Z",4.1,{}],["2016-05-11T13:03:12.000Z",4.8,{}],["2016-05-11T13:03:35.000Z",4.8,{}],["2016-05-11T13:03:43.000Z",4.3999999999999995,{}],["2016-05-11T13:04:05.000Z",3.9,{}],["2016-05-11T13:04:13.000Z",3.7,{}],["2016-05-11T13:04:35.000Z",4.0,{}],["2016-05-11T13:04:43.000Z",4.2,{}],["2016-05-11T13:05:05.000Z",5.0,{}],["2016-05-11T13:05:13.000Z",5.2,{}],["2016-05-11T13:05:36.000Z",5.6,{}],["2016-05-11T13:05:43.000Z",5.6,{}],["2016-05-11T13:06:05.000Z",5.4,{}],["2016-05-11T13:06:13.000Z",5.2,{}],["2016-05-11T13:06:36.000Z",4.6,{}],["2016-05-11T13:06:43.000Z",5.7,{}],["2016-05-11T13:07:05.000Z",6.199999999999999,{}],["2016-05-11T13:07:13.000Z",5.0,{}],["2016-05-11T13:07:35.000Z",4.3,{}],["2016-05-11T13:07:43.000Z",4.0,{}],["2016-05-11T13:08:05.000Z",4.0,{}],["2016-05-11T13:08:13.000Z",4.0,{}],["2016-05-11T13:08:35.000Z",4.4,{}],["2016-05-11T13:08:43.000Z",4.8,{}],["2016-05-11T13:09:06.000Z",4.8999999999999995,{}],["2016-05-11T13:09:13.000Z",4.6,{}],["2016-05-11T13:09:35.000Z",4.2,{}],["2016-05-11T13:09:43.000Z",4.2,{}],["2016-05-11T13:10:05.000Z",4.6,{}],["2016-05-11T13:10:13.000Z",4.8,{}],["2016-05-11T13:10:35.000Z",5.5,{}],["2016-05-11T13:10:43.000Z",5.199999999999999,{}],["2016-05-11T13:11:06.000Z",4.3,{}],["2016-05-11T13:11:13.000Z",4.2,{}],["2016-05-11T13:11:35.000Z",4.1,{}],["2016-05-11T13:11:43.000Z",4.1,{}],["2016-05-11T13:12:05.000Z",4.2,{}],["2016-05-11T13:12:13.000Z",4.2,{}],["2016-05-11T13:12:36.000Z",4.199999999999999,{}],["2016-05-11T13:12:43.000Z",4.199999999999999,{}],["2016-05-11T13:13:05.000Z",4.9,{}],["2016-05-11T13:13:13.000Z",4.9,{}],["2016-05-11T13:13:35.000Z",4.2,{}],["2016-05-11T13:13:43.000Z",4.0,{}],["2016-05-11T13:14:05.000Z",4.3,{}],["2016-05-11T13:14:13.000Z",4.4,{}],["2016-05-11T13:14:35.000Z",4.1,{}],["2016-05-11T13:14:43.000Z",4.0,{}],["2016-05-11T13:15:05.000Z",4.3,{}],["2016-05-11T13:15:13.000Z",4.3,{}],["2016-05-11T13:15:36.000Z",4.1,{}],["2016-05-11T13:15:44.000Z",4.1,{}],["2016-05-11T13:16:06.000Z",4.8,{}],["2016-05-11T13:16:13.000Z",4.6,{}],["2016-05-11T13:16:36.000Z",3.8,{}],["2016-05-11T13:16:43.000Z",4.3,{}],["2016-05-11T13:17:05.000Z",4.8,{}],["2016-05-11T13:17:13.000Z",4.6,{}],["2016-05-11T13:17:35.000Z",4.2,{}],["2016-05-11T13:17:43.000Z",4.1,{}],["2016-05-11T13:18:06.000Z",4.1,{}],["2016-05-11T13:18:13.000Z",4.1,{}],["2016-05-11T13:18:36.000Z",4.1,{}],["2016-05-11T13:18:43.000Z",3.9,{}],["2016-05-11T13:19:07.000Z",4.3,{}],["2016-05-11T13:19:13.000Z",4.4,{}],["2016-05-11T13:19:36.000Z",4.8,{}],["2016-05-11T13:19:43.000Z",5.2,{}],["2016-05-11T13:20:06.000Z",4.699999999999999,{}],["2016-05-11T13:20:13.000Z",4.3999999999999995,{}],["2016-05-11T13:20:36.000Z",4.4,{}],["2016-05-11T13:20:43.000Z",4.2,{}],["2016-05-11T13:21:06.000Z",4.3,{}],["2016-05-11T13:21:13.000Z",4.5,{}],["2016-05-11T13:21:36.000Z",4.3999999999999995,{}],["2016-05-11T13:22:06.000Z",3.6,{}],["2016-05-11T13:22:36.000Z",4.2,{}],["2016-05-11T13:23:07.000Z",4.1,{}],["2016-05-11T13:23:37.000Z",3.7,{}],["2016-05-11T13:24:06.000Z",5.2,{}],["2016-05-11T13:24:36.000Z",4.0,{}],["2016-05-11T13:25:06.000Z",3.9,{}],["2016-05-11T13:25:36.000Z",4.2,{}],["2016-05-11T13:26:06.000Z",4.4,{}],["2016-05-11T13:26:36.000Z",5.0,{}],["2016-05-11T13:27:06.000Z",4.5,{}],["2016-05-11T13:27:36.000Z",4.7,{}],["2016-05-11T13:28:06.000Z",3.9,{}],["2016-05-11T13:28:36.000Z",4.8999999999999995,{}],["2016-05-11T13:29:06.000Z",5.4,{}],["2016-05-11T13:29:36.000Z",4.6,{}],["2016-05-11T13:30:06.000Z",4.199999999999999,{}],["2016-05-11T13:30:36.000Z",4.1,{}],["2016-05-11T13:31:06.000Z",5.0,{}],["2016-05-11T13:31:36.000Z",5.9,{}],["2016-05-11T13:32:06.000Z",4.3999999999999995,{}],["2016-05-11T13:32:36.000Z",4.8,{}],["2016-05-11T13:33:06.000Z",5.0,{}],["2016-05-11T13:33:36.000Z",4.5,{}],["2016-05-11T13:34:06.000Z",4.5,{}],["2016-05-11T13:34:36.000Z",4.9,{}],["2016-05-11T13:35:06.000Z",4.7,{}],["2016-05-11T13:35:37.000Z",4.8999999999999995,{}],["2016-05-11T13:35:52.000Z",3.8000000000000003,{}],["2016-05-11T13:36:06.000Z",4.8,{}],["2016-05-11T13:36:22.000Z",6.0,{}],["2016-05-11T13:36:37.000Z",4.5,{}],["2016-05-11T13:36:52.000Z",7.3,{}],["2016-05-11T13:37:07.000Z",5.1,{}],["2016-05-11T13:37:22.000Z",9.7,{}],["2016-05-11T13:37:36.000Z",6.8,{}],["2016-05-11T13:37:52.000Z",5.9,{}],["2016-05-11T13:38:06.000Z",3.9,{}],["2016-05-11T13:38:22.000Z",4.9,{}],["2016-05-11T13:38:37.000Z",4.5,{}],["2016-05-11T13:38:52.000Z",6.9,{}],["2016-05-11T13:39:08.000Z",4.1,{}],["2016-05-11T13:39:22.000Z",7.1,{}],["2016-05-11T13:39:36.000Z",5.9,{}],["2016-05-11T13:39:52.000Z",7.5,{}],["2016-05-11T13:40:06.000Z",4.199999999999999,{}],["2016-05-11T13:40:22.000Z",2.7,{}],["2016-05-11T13:40:37.000Z",5.1,{}],["2016-05-11T13:40:52.000Z",6.8,{}],["2016-05-11T13:41:07.000Z",4.8,{}],["2016-05-11T13:41:22.000Z",6.9,{}],["2016-05-11T13:41:37.000Z",5.0,{}],["2016-05-11T13:41:52.000Z",8.4,{}],["2016-05-11T13:42:07.000Z",4.3999999999999995,{}],["2016-05-11T13:42:22.000Z",6.4,{}],["2016-05-11T13:42:37.000Z",4.4,{}],["2016-05-11T13:42:52.000Z",7.2,{}],["2016-05-11T13:43:07.000Z",6.1,{}],["2016-05-11T13:43:22.000Z",4.4,{}],["2016-05-11T13:43:37.000Z",7.1,{}],["2016-05-11T13:43:52.000Z",7.5,{}],["2016-05-11T13:44:07.000Z",5.6,{}],["2016-05-11T13:44:22.000Z",5.6,{}],["2016-05-11T13:44:37.000Z",4.5,{}],["2016-05-11T13:44:53.000Z",7.6,{}],["2016-05-11T13:45:07.000Z",4.3,{}],["2016-05-11T13:45:23.000Z",6.2,{}],["2016-05-11T13:45:37.000Z",4.5,{}],["2016-05-11T13:45:53.000Z",5.0,{}],["2016-05-11T13:46:07.000Z",5.6,{}],["2016-05-11T13:46:23.000Z",4.9,{}],["2016-05-11T13:46:37.000Z",5.5,{}],["2016-05-11T13:46:53.000Z",7.1,{}],["2016-05-11T13:47:07.000Z",5.1,{}],["2016-05-11T13:47:23.000Z",5.1,{}],["2016-05-11T13:47:37.000Z",5.1,{}],["2016-05-11T13:47:53.000Z",7.4,{}],["2016-05-11T13:48:07.000Z",4.199999999999999,{}],["2016-05-11T13:48:23.000Z",6.8,{}],["2016-05-11T13:48:37.000Z",4.4,{}],["2016-05-11T13:48:53.000Z",5.0,{}],["2016-05-11T13:49:07.000Z",4.5,{}],["2016-05-11T13:49:23.000Z",4.2,{}],["2016-05-11T13:49:37.000Z",4.7,{}],["2016-05-11T13:49:53.000Z",4.6,{}],["2016-05-11T13:50:07.000Z",4.3,{}],["2016-05-11T13:50:23.000Z",5.0,{}],["2016-05-11T13:50:37.000Z",4.4,{}],["2016-05-11T13:50:53.000Z",4.8,{}],["2016-05-11T13:51:07.000Z",4.0,{}],["2016-05-11T13:51:23.000Z",4.1,{}],["2016-05-11T13:51:37.000Z",6.0,{}],["2016-05-11T13:51:53.000Z",4.6,{}],["2016-05-11T13:52:07.000Z",4.9,{}],["2016-05-11T13:52:23.000Z",3.8000000000000003,{}],["2016-05-11T13:52:37.000Z",5.5,{}],["2016-05-11T13:52:53.000Z",5.1,{}],["2016-05-11T13:53:07.000Z",4.7,{}],["2016-05-11T13:53:23.000Z",3.4,{}],["2016-05-11T13:53:37.000Z",5.0,{}],["2016-05-11T13:53:53.000Z",6.9,{}],["2016-05-11T13:54:08.000Z",4.8,{}],["2016-05-11T13:54:23.000Z",4.7,{}],["2016-05-11T13:54:37.000Z",4.8,{}],["2016-05-11T13:54:53.000Z",5.0,{}],["2016-05-11T13:55:07.000Z",5.2,{}],["2016-05-11T13:55:23.000Z",4.699999999999999,{}],["2016-05-11T13:55:37.000Z",4.9,{}],["2016-05-11T13:55:53.000Z",4.8,{}],["2016-05-11T13:56:07.000Z",4.8999999999999995,{}],["2016-05-11T13:56:23.000Z",4.2,{}],["2016-05-11T13:56:37.000Z",5.4,{}],["2016-05-11T13:56:53.000Z",6.7,{}],["2016-05-11T13:57:07.000Z",4.9,{}],["2016-05-11T13:57:23.000Z",2.2,{}],["2016-05-11T13:57:37.000Z",6.7,{}],["2016-05-11T13:57:53.000Z",5.3,{}],["2016-05-11T13:58:08.000Z",4.2,{}],["2016-05-11T13:58:23.000Z",6.2,{}],["2016-05-11T13:58:37.000Z",4.3,{}],["2016-05-11T13:58:53.000Z",4.9,{}],["2016-05-11T13:59:07.000Z",4.8,{}],["2016-05-11T13:59:23.000Z",4.6,{}],["2016-05-11T13:59:37.000Z",5.3,{}],["2016-05-11T13:59:53.000Z",5.7,{}],["2016-05-11T14:00:07.000Z",5.199999999999999,{}],["2016-05-11T14:00:23.000Z",4.1,{}],["2016-05-11T14:00:38.000Z",4.2,{}],["2016-05-11T14:00:53.000Z",4.7,{}],["2016-05-11T14:01:08.000Z",4.6,{}],["2016-05-11T14:01:23.000Z",4.8,{}],["2016-05-11T14:01:38.000Z",5.5,{}],["2016-05-11T14:01:53.000Z",3.8,{}],["2016-05-11T14:02:08.000Z",4.6,{}],["2016-05-11T14:02:23.000Z",4.0,{}],["2016-05-11T14:02:38.000Z",4.6,{}],["2016-05-11T14:02:53.000Z",4.699999999999999,{}],["2016-05-11T14:03:08.000Z",5.3999999999999995,{}],["2016-05-11T14:03:23.000Z",3.9,{}],["2016-05-11T14:03:38.000Z",4.4,{}],["2016-05-11T14:03:53.000Z",8.0,{}],["2016-05-11T14:04:08.000Z",4.4,{}],["2016-05-11T14:04:23.000Z",5.3999999999999995,{}],["2016-05-11T14:04:38.000Z",5.8,{}],["2016-05-11T14:04:53.000Z",4.0,{}],["2016-05-11T14:05:08.000Z",6.5,{}],["2016-05-11T14:05:23.000Z",7.6,{}],["2016-05-11T14:05:38.000Z",6.8,{}],["2016-05-11T14:05:53.000Z",4.199999999999999,{}],["2016-05-11T14:06:08.000Z",5.9,{}],["2016-05-11T14:06:23.000Z",4.3,{}],["2016-05-11T14:06:38.000Z",5.199999999999999,{}],["2016-05-11T14:06:53.000Z",8.0,{}],["2016-05-11T14:07:08.000Z",8.3,{}],["2016-05-11T14:07:23.000Z",4.5,{}],["2016-05-11T14:07:38.000Z",6.4,{}],["2016-05-11T14:07:54.000Z",6.0,{}],["2016-05-11T14:08:08.000Z",7.5,{}],["2016-05-11T14:08:24.000Z",3.2,{}],["2016-05-11T14:08:38.000Z",6.6,{}],["2016-05-11T14:08:54.000Z",4.0,{}],["2016-05-11T14:09:08.000Z",7.4,{}],["2016-05-11T14:09:24.000Z",6.9,{}],["2016-05-11T14:09:38.000Z",6.0,{}],["2016-05-11T14:09:54.000Z",4.1,{}],["2016-05-11T14:10:09.000Z",7.5,{}],["2016-05-11T14:10:24.000Z",4.6,{}],["2016-05-11T14:10:38.000Z",6.0,{}],["2016-05-11T14:10:54.000Z",6.6,{}],["2016-05-11T14:11:08.000Z",5.3,{}],["2016-05-11T14:11:24.000Z",4.8,{}],["2016-05-11T14:11:39.000Z",4.0,{}],["2016-05-11T14:11:54.000Z",6.5,{}],["2016-05-11T14:12:08.000Z",4.1,{}],["2016-05-11T14:12:24.000Z",5.1,{}],["2016-05-11T14:12:38.000Z",5.699999999999999,{}],["2016-05-11T14:12:54.000Z",9.1,{}],["2016-05-11T14:13:08.000Z",5.6,{}],["2016-05-11T14:13:24.000Z",4.8,{}],["2016-05-11T14:13:38.000Z",4.8,{}],["2016-05-11T14:13:54.000Z",4.3,{}],["2016-05-11T14:14:08.000Z",4.2,{}],["2016-05-11T14:14:24.000Z",4.5,{}],["2016-05-11T14:14:38.000Z",4.3999999999999995,{}],["2016-05-11T14:14:54.000Z",6.3,{}],["2016-05-11T14:15:08.000Z",5.5,{}],["2016-05-11T14:15:24.000Z",4.4,{}],["2016-05-11T14:15:38.000Z",5.8,{}],["2016-05-11T14:15:54.000Z",4.1,{}],["2016-05-11T14:16:08.000Z",5.5,{}],["2016-05-11T14:16:24.000Z",4.2,{}],["2016-05-11T14:16:38.000Z",4.5,{}],["2016-05-11T14:16:54.000Z",6.1,{}],["2016-05-11T14:17:08.000Z",4.3,{}],["2016-05-11T14:17:24.000Z",4.1,{}],["2016-05-11T14:17:38.000Z",4.3999999999999995,{}],["2016-05-11T14:17:42.000Z",5.0,{}],["2016-05-11T14:17:54.000Z",9.3,{}],["2016-05-11T14:18:12.000Z",5.5,{}],["2016-05-11T14:18:24.000Z",3.7,{}],["2016-05-11T14:18:43.000Z",7.9,{}],["2016-05-11T14:18:54.000Z",7.5,{}],["2016-05-11T14:19:12.000Z",7.6,{}],["2016-05-11T14:19:24.000Z",5.6,{}],["2016-05-11T14:19:42.000Z",4.0,{}],["2016-05-11T14:19:54.000Z",4.7,{}],["2016-05-11T14:20:12.000Z",5.7,{}],["2016-05-11T14:20:24.000Z",6.3999999999999995,{}],["2016-05-11T14:20:42.000Z",5.2,{}],["2016-05-11T14:20:54.000Z",4.0,{}],["2016-05-11T14:21:12.000Z",4.5,{}],["2016-05-11T14:21:24.000Z",7.0,{}],["2016-05-11T14:21:43.000Z",4.4,{}],["2016-05-11T14:21:54.000Z",5.5,{}],["2016-05-11T14:22:12.000Z",5.5,{}],["2016-05-11T14:22:24.000Z",5.699999999999999,{}],["2016-05-11T14:22:42.000Z",4.3,{}],["2016-05-11T14:22:54.000Z",5.6,{}],["2016-05-11T14:23:12.000Z",4.4,{}],["2016-05-11T14:23:24.000Z",4.2,{}],["2016-05-11T14:23:42.000Z",4.3,{}],["2016-05-11T14:23:54.000Z",5.6,{}],["2016-05-11T14:24:12.000Z",4.8999999999999995,{}],["2016-05-11T14:24:25.000Z",4.8,{}],["2016-05-11T14:24:43.000Z",4.0,{}],["2016-05-11T14:24:54.000Z",6.9,{}],["2016-05-11T14:25:12.000Z",4.0,{}],["2016-05-11T14:25:24.000Z",5.3,{}],["2016-05-11T14:25:43.000Z",4.1,{}],["2016-05-11T14:25:54.000Z",7.5,{}],["2016-05-11T14:26:13.000Z",3.8,{}],["2016-05-11T14:26:24.000Z",6.1,{}],["2016-05-11T14:26:43.000Z",4.1,{}],["2016-05-11T14:26:54.000Z",7.6,{}],["2016-05-11T14:27:13.000Z",5.6,{}],["2016-05-11T14:27:24.000Z",7.2,{}],["2016-05-11T14:27:42.000Z",4.5,{}],["2016-05-11T14:27:54.000Z",6.8999999999999995,{}],["2016-05-11T14:28:12.000Z",4.0,{}],["2016-05-11T14:28:24.000Z",6.1,{}],["2016-05-11T14:28:42.000Z",4.1,{}],["2016-05-11T14:28:54.000Z",10.1,{}],["2016-05-11T14:29:13.000Z",5.5,{}],["2016-05-11T14:29:24.000Z",11.4,{}],["2016-05-11T14:29:43.000Z",4.1,{}],["2016-05-11T14:29:54.000Z",7.8999999999999995,{}],["2016-05-11T14:30:13.000Z",4.7,{}],["2016-05-11T14:30:24.000Z",4.8,{}],["2016-05-11T14:30:43.000Z",4.4,{}],["2016-05-11T14:30:54.000Z",5.1,{}],["2016-05-11T14:31:14.000Z",4.8,{}],["2016-05-11T14:31:24.000Z",6.1,{}],["2016-05-11T14:31:43.000Z",4.3,{}],["2016-05-11T14:31:54.000Z",8.2,{}],["2016-05-11T14:32:13.000Z",4.1,{}],["2016-05-11T14:32:24.000Z",6.1,{}],["2016-05-11T14:32:44.000Z",4.1,{}],["2016-05-11T14:32:54.000Z",10.1,{}],["2016-05-11T14:33:13.000Z",4.5,{}],["2016-05-11T14:33:24.000Z",6.8999999999999995,{}],["2016-05-11T14:33:43.000Z",5.2,{}],["2016-05-11T14:33:55.000Z",6.6,{}],["2016-05-11T14:34:13.000Z",6.0,{}],["2016-05-11T14:34:25.000Z",9.2,{}],["2016-05-11T14:34:43.000Z",5.5,{}],["2016-05-11T14:34:55.000Z",4.8999999999999995,{}],["2016-05-11T14:35:13.000Z",4.4,{}],["2016-05-11T14:35:25.000Z",5.7,{}],["2016-05-11T14:35:44.000Z",4.8,{}],["2016-05-11T14:35:55.000Z",10.9,{}],["2016-05-11T14:36:13.000Z",4.3999999999999995,{}],["2016-05-11T14:36:25.000Z",6.699999999999999,{}],["2016-05-11T14:36:43.000Z",5.4,{}],["2016-05-11T14:36:55.000Z",5.5,{}],["2016-05-11T14:37:13.000Z",5.8,{}],["2016-05-11T14:37:25.000Z",8.3,{}],["2016-05-11T14:37:43.000Z",5.0,{}],["2016-05-11T14:37:55.000Z",7.0,{}],["2016-05-11T14:38:14.000Z",4.3,{}],["2016-05-11T14:38:25.000Z",8.2,{}],["2016-05-11T14:38:43.000Z",4.0,{}],["2016-05-11T14:38:55.000Z",7.2,{}],["2016-05-11T14:39:13.000Z",4.0,{}],["2016-05-11T14:39:25.000Z",8.0,{}],["2016-05-11T14:39:43.000Z",4.3,{}],["2016-05-11T14:39:55.000Z",7.1,{}],["2016-05-11T14:40:13.000Z",4.2,{}],["2016-05-11T14:40:25.000Z",8.7,{}],["2016-05-11T14:40:43.000Z",4.3,{}],["2016-05-11T14:40:55.000Z",8.3,{}],["2016-05-11T14:41:14.000Z",4.6,{}],["2016-05-11T14:41:25.000Z",10.5,{}],["2016-05-11T14:41:43.000Z",4.5,{}],["2016-05-11T14:41:55.000Z",8.1,{}],["2016-05-11T14:42:13.000Z",4.3,{}],["2016-05-11T14:42:25.000Z",8.6,{}],["2016-05-11T14:42:43.000Z",4.6,{}],["2016-05-11T14:42:55.000Z",7.2,{}],["2016-05-11T14:43:13.000Z",5.199999999999999,{}],["2016-05-11T14:43:25.000Z",8.4,{}],["2016-05-11T14:43:43.000Z",4.7,{}],["2016-05-11T14:43:55.000Z",8.5,{}],["2016-05-11T14:44:13.000Z",4.9,{}],["2016-05-11T14:44:25.000Z",9.3,{}],["2016-05-11T14:44:43.000Z",5.6,{}],["2016-05-11T14:44:55.000Z",7.8,{}],["2016-05-11T14:45:14.000Z",3.7,{}],["2016-05-11T14:45:25.000Z",8.4,{}],["2016-05-11T14:45:43.000Z",4.8,{}],["2016-05-11T14:45:55.000Z",9.2,{}],["2016-05-11T14:46:14.000Z",4.0,{}],["2016-05-11T14:46:25.000Z",8.8,{}],["2016-05-11T14:46:43.000Z",4.1,{}],["2016-05-11T14:46:55.000Z",7.8999999999999995,{}],["2016-05-11T14:47:13.000Z",3.7,{}],["2016-05-11T14:47:25.000Z",8.1,{}],["2016-05-11T14:47:43.000Z",4.0,{}],["2016-05-11T14:47:55.000Z",6.5,{}],["2016-05-11T14:48:14.000Z",3.7,{}],["2016-05-11T14:48:25.000Z",6.8,{}],["2016-05-11T14:48:43.000Z",3.9,{}],["2016-05-11T14:48:55.000Z",7.7,{}],["2016-05-11T14:49:13.000Z",3.9,{}],["2016-05-11T14:49:25.000Z",6.8,{}],["2016-05-11T14:49:43.000Z",4.3,{}],["2016-05-11T14:49:55.000Z",7.3999999999999995,{}],["2016-05-11T14:50:13.000Z",4.0,{}],["2016-05-11T14:50:25.000Z",8.0,{}],["2016-05-11T14:50:43.000Z",3.8,{}],["2016-05-11T14:50:55.000Z",6.8,{}],["2016-05-11T14:51:13.000Z",4.2,{}],["2016-05-11T14:51:25.000Z",9.6,{}],["2016-05-11T14:51:44.000Z",4.3,{}],["2016-05-11T14:51:55.000Z",12.9,{}],["2016-05-11T14:52:14.000Z",4.1,{}],["2016-05-11T14:52:26.000Z",7.7,{}],["2016-05-11T14:52:44.000Z",4.1,{}],["2016-05-11T14:52:55.000Z",9.4,{}],["2016-05-11T14:53:14.000Z",4.2,{}],["2016-05-11T14:53:25.000Z",4.9,{}],["2016-05-11T14:53:43.000Z",4.6,{}],["2016-05-11T14:53:55.000Z",8.3,{}],["2016-05-11T14:54:13.000Z",5.1,{}],["2016-05-11T14:54:25.000Z",5.8,{}],["2016-05-11T14:54:43.000Z",4.0,{}],["2016-05-11T14:54:56.000Z",6.6,{}],["2016-05-11T14:55:13.000Z",3.8,{}],["2016-05-11T14:55:26.000Z",8.1,{}],["2016-05-11T14:55:44.000Z",4.0,{}],["2016-05-11T14:55:56.000Z",9.9,{}],["2016-05-11T14:56:14.000Z",5.6,{}],["2016-05-11T14:56:26.000Z",11.9,{}],["2016-05-11T14:56:44.000Z",3.6,{}],["2016-05-11T14:56:56.000Z",23.6,{}],["2016-05-11T14:57:14.000Z",4.6,{}],["2016-05-11T14:57:26.000Z",24.5,{}],["2016-05-11T14:57:44.000Z",3.9,{}],["2016-05-11T14:57:56.000Z",9.6,{}],["2016-05-11T14:58:14.000Z",3.7,{}],["2016-05-11T14:58:26.000Z",8.4,{}],["2016-05-11T14:58:44.000Z",3.9,{}],["2016-05-11T14:58:56.000Z",24.8,{}],["2016-05-11T14:59:14.000Z",3.7,{}],["2016-05-11T14:59:26.000Z",10.2,{}],["2016-05-11T14:59:44.000Z",4.3,{}],["2016-05-11T14:59:56.000Z",7.699999999999999,{}],["2016-05-11T15:00:14.000Z",3.6,{}],["2016-05-11T15:00:26.000Z",5.6,{}],["2016-05-11T15:00:44.000Z",3.7,{}],["2016-05-11T15:00:56.000Z",9.3,{}],["2016-05-11T15:01:14.000Z",3.7,{}],["2016-05-11T15:01:26.000Z",7.5,{}],["2016-05-11T15:01:44.000Z",4.0,{}],["2016-05-11T15:01:56.000Z",6.2,{}],["2016-05-11T15:02:14.000Z",4.0,{}],["2016-05-11T15:02:26.000Z",7.8,{}],["2016-05-11T15:02:44.000Z",3.9,{}],["2016-05-11T15:02:56.000Z",4.1,{}],["2016-05-11T15:03:14.000Z",3.7,{}],["2016-05-11T15:03:26.000Z",8.1,{}],["2016-05-11T15:03:44.000Z",3.8,{}],["2016-05-11T15:03:56.000Z",9.4,{}],["2016-05-11T15:04:14.000Z",5.9,{}],["2016-05-11T15:04:26.000Z",8.3,{}],["2016-05-11T15:04:44.000Z",3.8,{}],["2016-05-11T15:04:56.000Z",8.2,{}],["2016-05-11T15:05:14.000Z",4.0,{}],["2016-05-11T15:05:26.000Z",5.3,{}],["2016-05-11T15:05:44.000Z",4.5,{}],["2016-05-11T15:05:56.000Z",8.3,{}],["2016-05-11T15:06:14.000Z",4.1,{}],["2016-05-11T15:06:26.000Z",7.2,{}],["2016-05-11T15:06:45.000Z",3.9,{}],["2016-05-11T15:06:56.000Z",6.1,{}],["2016-05-11T15:07:14.000Z",4.3999999999999995,{}],["2016-05-11T15:07:26.000Z",9.0,{}],["2016-05-11T15:07:45.000Z",3.9,{}],["2016-05-11T15:07:56.000Z",5.0,{}],["2016-05-11T15:08:14.000Z",4.3,{}],["2016-05-11T15:08:26.000Z",8.9,{}],["2016-05-11T15:08:44.000Z",4.0,{}],["2016-05-11T15:08:56.000Z",5.0,{}],["2016-05-11T15:09:14.000Z",3.8,{}],["2016-05-11T15:09:26.000Z",6.2,{}],["2016-05-11T15:09:44.000Z",3.9,{}],["2016-05-11T15:09:56.000Z",7.3999999999999995,{}],["2016-05-11T15:10:14.000Z",4.0,{}],["2016-05-11T15:10:26.000Z",7.4,{}],["2016-05-11T15:10:44.000Z",4.0,{}],["2016-05-11T15:10:56.000Z",7.3,{}],["2016-05-11T15:11:14.000Z",3.7,{}],["2016-05-11T15:11:26.000Z",7.0,{}],["2016-05-11T15:11:44.000Z",3.8,{}],["2016-05-11T15:11:56.000Z",7.8,{}],["2016-05-11T15:12:14.000Z",4.6,{}],["2016-05-11T15:12:26.000Z",3.8000000000000003,{}],["2016-05-11T15:12:44.000Z",4.5,{}],["2016-05-11T15:12:56.000Z",7.6,{}],["2016-05-11T15:13:14.000Z",3.7,{}],["2016-05-11T15:13:26.000Z",7.8,{}],["2016-05-11T15:13:44.000Z",3.7,{}],["2016-05-11T15:13:56.000Z",7.6,{}],["2016-05-11T15:14:14.000Z",4.5,{}],["2016-05-11T15:14:26.000Z",7.7,{}],["2016-05-11T15:14:45.000Z",4.1,{}],["2016-05-11T15:14:57.000Z",8.6,{}],["2016-05-11T15:15:14.000Z",3.9,{}],["2016-05-11T15:15:27.000Z",8.1,{}],["2016-05-11T15:15:44.000Z",4.1,{}],["2016-05-11T15:15:57.000Z",5.8,{}],["2016-05-11T15:16:15.000Z",4.4,{}],["2016-05-11T15:16:27.000Z",9.0,{}],["2016-05-11T15:16:44.000Z",3.9,{}],["2016-05-11T15:16:57.000Z",7.4,{}],["2016-05-11T15:17:14.000Z",3.8,{}],["2016-05-11T15:17:27.000Z",8.299999999999999,{}],["2016-05-11T15:17:45.000Z",5.3999999999999995,{}],["2016-05-11T15:17:57.000Z",8.3,{}],["2016-05-11T15:18:15.000Z",5.1,{}],["2016-05-11T15:18:27.000Z",6.8,{}],["2016-05-11T15:18:45.000Z",3.9,{}],["2016-05-11T15:18:57.000Z",11.1,{}],["2016-05-11T15:19:15.000Z",4.1,{}],["2016-05-11T15:19:27.000Z",6.6,{}],["2016-05-11T15:19:45.000Z",4.0,{}],["2016-05-11T15:19:57.000Z",9.0,{}],["2016-05-11T15:20:15.000Z",3.9,{}],["2016-05-11T15:20:27.000Z",9.5,{}],["2016-05-11T15:20:45.000Z",4.5,{}],["2016-05-11T15:20:57.000Z",8.4,{}],["2016-05-11T15:21:15.000Z",4.5,{}],["2016-05-11T15:21:27.000Z",9.3,{}],["2016-05-11T15:21:45.000Z",4.0,{}],["2016-05-11T15:21:57.000Z",10.8,{}],["2016-05-11T15:22:15.000Z",3.9,{}],["2016-05-11T15:22:27.000Z",8.9,{}],["2016-05-11T15:22:45.000Z",4.0,{}],["2016-05-11T15:22:57.000Z",7.8,{}],["2016-05-11T15:23:15.000Z",4.2,{}],["2016-05-11T15:23:27.000Z",9.1,{}],["2016-05-11T15:23:45.000Z",4.3,{}],["2016-05-11T15:23:57.000Z",23.3,{}],["2016-05-11T15:24:15.000Z",4.1,{}],["2016-05-11T15:24:27.000Z",21.6,{}],["2016-05-11T15:24:45.000Z",3.8,{}],["2016-05-11T15:24:57.000Z",22.8,{}],["2016-05-11T15:25:15.000Z",4.0,{}],["2016-05-11T15:25:27.000Z",24.400000000000002,{}],["2016-05-11T15:25:45.000Z",3.8000000000000003,{}],["2016-05-11T15:25:57.000Z",23.5,{}],["2016-05-11T15:26:15.000Z",3.8,{}],["2016-05-11T15:26:27.000Z",25.8,{}],["2016-05-11T15:26:45.000Z",3.8,{}],["2016-05-11T15:26:57.000Z",25.2,{}],["2016-05-11T15:27:15.000Z",4.0,{}],["2016-05-11T15:27:27.000Z",23.200000000000003,{}],["2016-05-11T15:27:45.000Z",3.8,{}],["2016-05-11T15:27:57.000Z",23.3,{}],["2016-05-11T15:28:15.000Z",4.3999999999999995,{}],["2016-05-11T15:28:27.000Z",26.4,{}],["2016-05-11T15:28:45.000Z",3.7,{}],["2016-05-11T15:28:57.000Z",23.200000000000003,{}],["2016-05-11T15:29:16.000Z",3.7,{}],["2016-05-11T15:29:27.000Z",23.1,{}],["2016-05-11T15:29:46.000Z",4.0,{}],["2016-05-11T15:29:57.000Z",24.3,{}],["2016-05-11T15:30:15.000Z",4.0,{}],["2016-05-11T15:30:27.000Z",24.6,{}],["2016-05-11T15:30:45.000Z",3.7,{}],["2016-05-11T15:30:57.000Z",24.6,{}],["2016-05-11T15:31:15.000Z",3.8,{}],["2016-05-11T15:31:27.000Z",23.4,{}],["2016-05-11T15:31:45.000Z",3.9,{}],["2016-05-11T15:31:57.000Z",24.4,{}],["2016-05-11T15:32:15.000Z",3.9,{}],["2016-05-11T15:32:27.000Z",22.6,{}],["2016-05-11T15:32:45.000Z",3.6,{}],["2016-05-11T15:32:57.000Z",11.5,{}],["2016-05-11T15:33:15.000Z",4.1,{}],["2016-05-11T15:33:27.000Z",7.199999999999999,{}],["2016-05-11T15:33:45.000Z",3.9,{}],["2016-05-11T15:33:57.000Z",7.5,{}],["2016-05-11T15:34:15.000Z",6.1,{}],["2016-05-11T15:34:27.000Z",10.3,{}],["2016-05-11T15:34:45.000Z",4.1,{}],["2016-05-11T15:34:57.000Z",6.1,{}],["2016-05-11T15:35:15.000Z",3.8000000000000003,{}],["2016-05-11T15:35:27.000Z",7.8999999999999995,{}],["2016-05-11T15:35:45.000Z",3.9,{}],["2016-05-11T15:35:57.000Z",9.0,{}],["2016-05-11T15:36:15.000Z",4.0,{}],["2016-05-11T15:36:27.000Z",7.2,{}],["2016-05-11T15:36:45.000Z",4.1,{}],["2016-05-11T15:36:57.000Z",5.8,{}],["2016-05-11T15:37:16.000Z",4.0,{}],["2016-05-11T15:37:28.000Z",6.9,{}],["2016-05-11T15:37:45.000Z",3.8,{}],["2016-05-11T15:37:58.000Z",5.9,{}],["2016-05-11T15:38:16.000Z",4.4,{}],["2016-05-11T15:38:28.000Z",7.9,{}],["2016-05-11T15:38:46.000Z",4.1,{}],["2016-05-11T15:38:58.000Z",8.2,{}],["2016-05-11T15:39:15.000Z",4.5,{}],["2016-05-11T15:39:28.000Z",9.1,{}],["2016-05-11T15:39:46.000Z",3.9,{}],["2016-05-11T15:39:58.000Z",10.9,{}],["2016-05-11T15:40:15.000Z",4.5,{}],["2016-05-11T15:40:28.000Z",10.5,{}],["2016-05-11T15:40:48.000Z",3.8000000000000003,{}],["2016-05-11T15:40:58.000Z",8.8,{}],["2016-05-11T15:41:16.000Z",4.3,{}],["2016-05-11T15:41:28.000Z",11.7,{}],["2016-05-11T15:41:46.000Z",3.8,{}],["2016-05-11T15:41:58.000Z",8.5,{}],["2016-05-11T15:42:16.000Z",4.3,{}],["2016-05-11T15:42:28.000Z",10.0,{}],["2016-05-11T15:42:46.000Z",4.0,{}],["2016-05-11T15:42:58.000Z",8.0,{}],["2016-05-11T15:43:16.000Z",3.6,{}],["2016-05-11T15:43:28.000Z",8.5,{}],["2016-05-11T15:43:54.000Z",4.2,{}],["2016-05-11T15:43:58.000Z",10.3,{}],["2016-05-11T15:44:16.000Z",4.3,{}],["2016-05-11T15:44:28.000Z",11.9,{}],["2016-05-11T15:44:46.000Z",4.3999999999999995,{}],["2016-05-11T15:44:58.000Z",8.0,{}],["2016-05-11T15:45:16.000Z",4.4,{}],["2016-05-11T15:45:28.000Z",8.0,{}],["2016-05-11T15:45:46.000Z",3.5,{}],["2016-05-11T15:45:58.000Z",8.2,{}],["2016-05-11T15:46:17.000Z",4.2,{}],["2016-05-11T15:46:28.000Z",7.8999999999999995,{}],["2016-05-11T15:46:46.000Z",3.6,{}],["2016-05-11T15:46:58.000Z",6.0,{}],["2016-05-11T15:47:16.000Z",5.0,{}],["2016-05-11T15:47:28.000Z",9.5,{}],["2016-05-11T15:47:46.000Z",3.7,{}],["2016-05-11T15:47:58.000Z",8.0,{}],["2016-05-11T15:48:16.000Z",4.5,{}],["2016-05-11T15:48:28.000Z",6.4,{}],["2016-05-11T15:48:46.000Z",5.5,{}],["2016-05-11T15:48:58.000Z",6.4,{}],["2016-05-11T15:49:16.000Z",3.9,{}],["2016-05-11T15:49:28.000Z",7.7,{}],["2016-05-11T15:49:46.000Z",3.9,{}],["2016-05-11T15:49:58.000Z",5.699999999999999,{}],["2016-05-11T15:50:16.000Z",4.6,{}],["2016-05-11T15:50:28.000Z",9.4,{}],["2016-05-11T15:50:47.000Z",4.0,{}],["2016-05-11T15:50:58.000Z",5.5,{}],["2016-05-11T15:51:16.000Z",4.0,{}],["2016-05-11T15:51:28.000Z",7.3,{}],["2016-05-11T15:51:46.000Z",3.7,{}],["2016-05-11T15:51:58.000Z",7.1,{}],["2016-05-11T15:52:16.000Z",3.9,{}],["2016-05-11T15:52:28.000Z",6.4,{}],["2016-05-11T15:52:46.000Z",3.8,{}],["2016-05-11T15:52:58.000Z",9.1,{}],["2016-05-11T15:53:16.000Z",3.7,{}],["2016-05-11T15:53:28.000Z",9.8,{}],["2016-05-11T15:53:47.000Z",4.1,{}],["2016-05-11T15:53:58.000Z",5.9,{}],["2016-05-11T15:54:16.000Z",3.8,{}],["2016-05-11T15:54:28.000Z",6.3999999999999995,{}],["2016-05-11T15:54:46.000Z",4.0,{}],["2016-05-11T15:54:58.000Z",5.0,{}],["2016-05-11T15:55:16.000Z",3.6,{}],["2016-05-11T15:55:28.000Z",8.4,{}],["2016-05-11T15:55:46.000Z",3.8000000000000003,{}],["2016-05-11T15:55:58.000Z",8.299999999999999,{}],["2016-05-11T15:56:16.000Z",4.2,{}],["2016-05-11T15:56:28.000Z",7.1,{}],["2016-05-11T15:56:46.000Z",3.6,{}],["2016-05-11T15:56:58.000Z",8.1,{}],["2016-05-11T15:57:16.000Z",3.7,{}],["2016-05-11T15:57:28.000Z",8.0,{}],["2016-05-11T15:57:46.000Z",4.199999999999999,{}],["2016-05-11T15:57:58.000Z",5.8,{}],["2016-05-11T15:58:17.000Z",4.4,{}],["2016-05-11T15:58:28.000Z",7.6,{}],["2016-05-11T15:58:46.000Z",3.7,{}],["2016-05-11T15:58:58.000Z",8.6,{}],["2016-05-11T15:59:16.000Z",3.8000000000000003,{}],["2016-05-11T15:59:28.000Z",8.4,{}],["2016-05-11T15:59:46.000Z",3.5,{}],["2016-05-11T15:59:59.000Z",6.1,{}],["2016-05-11T16:00:16.000Z",4.5,{}],["2016-05-11T16:00:29.000Z",6.7,{}],["2016-05-11T16:00:46.000Z",5.0,{}],["2016-05-11T16:00:59.000Z",8.299999999999999,{}],["2016-05-11T16:01:16.000Z",4.9,{}],["2016-05-11T16:01:29.000Z",5.3,{}],["2016-05-11T16:01:46.000Z",3.8,{}],["2016-05-11T16:01:59.000Z",7.199999999999999,{}],["2016-05-11T16:02:16.000Z",4.8999999999999995,{}],["2016-05-11T16:02:29.000Z",7.8,{}],["2016-05-11T16:02:47.000Z",3.5,{}],["2016-05-11T16:02:59.000Z",8.9,{}],["2016-05-11T16:03:16.000Z",6.1,{}],["2016-05-11T16:03:29.000Z",6.9,{}],["2016-05-11T16:03:47.000Z",3.6,{}],["2016-05-11T16:03:59.000Z",7.6,{}],["2016-05-11T16:04:17.000Z",3.7,{}],["2016-05-11T16:04:29.000Z",8.0,{}],["2016-05-11T16:04:47.000Z",4.0,{}],["2016-05-11T16:04:59.000Z",10.1,{}],["2016-05-11T16:05:17.000Z",4.1,{}],["2016-05-11T16:05:29.000Z",5.9,{}],["2016-05-11T16:05:47.000Z",3.7,{}],["2016-05-11T16:05:59.000Z",5.699999999999999,{}],["2016-05-11T16:06:17.000Z",4.0,{}],["2016-05-11T16:06:29.000Z",9.2,{}],["2016-05-11T16:06:47.000Z",3.6,{}],["2016-05-11T16:06:59.000Z",6.9,{}],["2016-05-11T16:07:17.000Z",4.0,{}],["2016-05-11T16:07:29.000Z",8.0,{}],["2016-05-11T16:07:47.000Z",3.8000000000000003,{}],["2016-05-11T16:07:59.000Z",7.8,{}],["2016-05-11T16:08:17.000Z",3.6,{}],["2016-05-11T16:08:29.000Z",8.2,{}],["2016-05-11T16:08:47.000Z",3.7,{}],["2016-05-11T16:08:59.000Z",7.1,{}],["2016-05-11T16:09:17.000Z",3.9,{}],["2016-05-11T16:09:29.000Z",5.4,{}],["2016-05-11T16:09:47.000Z",3.7,{}],["2016-05-11T16:09:59.000Z",8.1,{}],["2016-05-11T16:10:17.000Z",3.6,{}],["2016-05-11T16:10:29.000Z",8.0,{}],["2016-05-11T16:10:47.000Z",3.6,{}],["2016-05-11T16:10:59.000Z",6.1,{}],["2016-05-11T16:11:17.000Z",4.3,{}],["2016-05-11T16:11:29.000Z",5.5,{}],["2016-05-11T16:11:47.000Z",4.1,{}],["2016-05-11T16:11:59.000Z",8.0,{}],["2016-05-11T16:12:17.000Z",3.6,{}],["2016-05-11T16:12:29.000Z",8.0,{}],["2016-05-11T16:12:47.000Z",3.7,{}],["2016-05-11T16:12:59.000Z",7.9,{}],["2016-05-11T16:13:17.000Z",5.1,{}],["2016-05-11T16:13:29.000Z",6.8999999999999995,{}],["2016-05-11T16:13:47.000Z",4.2,{}],["2016-05-11T16:13:59.000Z",6.9,{}],["2016-05-11T16:14:17.000Z",4.5,{}],["2016-05-11T16:14:29.000Z",6.6,{}],["2016-05-11T16:14:47.000Z",4.1,{}],["2016-05-11T16:14:59.000Z",7.8,{}],["2016-05-11T16:15:17.000Z",3.8,{}],["2016-05-11T16:15:29.000Z",7.699999999999999,{}],["2016-05-11T16:15:48.000Z",3.8000000000000003,{}],["2016-05-11T16:15:59.000Z",6.1,{}],["2016-05-11T16:16:17.000Z",5.3,{}],["2016-05-11T16:16:29.000Z",7.6,{}],["2016-05-11T16:16:47.000Z",5.8,{}],["2016-05-11T16:16:59.000Z",3.9,{}],["2016-05-11T16:17:17.000Z",4.0,{}],["2016-05-11T16:17:29.000Z",7.3,{}],["2016-05-11T16:17:47.000Z",3.6,{}],["2016-05-11T16:17:59.000Z",5.4,{}],["2016-05-11T16:18:17.000Z",4.0,{}],["2016-05-11T16:18:29.000Z",8.0,{}],["2016-05-11T16:18:47.000Z",4.2,{}],["2016-05-11T16:18:59.000Z",8.4,{}],["2016-05-11T16:19:17.000Z",4.0,{}],["2016-05-11T16:19:29.000Z",7.6,{}],["2016-05-11T16:19:47.000Z",4.1,{}],["2016-05-11T16:19:59.000Z",6.9,{}],["2016-05-11T16:20:17.000Z",3.9,{}],["2016-05-11T16:20:29.000Z",7.1,{}],["2016-05-11T16:20:47.000Z",3.7,{}],["2016-05-11T16:20:59.000Z",6.8999999999999995,{}],["2016-05-11T16:21:17.000Z",4.0,{}],["2016-05-11T16:21:29.000Z",7.3,{}],["2016-05-11T16:21:47.000Z",3.5,{}],["2016-05-11T16:21:59.000Z",3.3,{}],["2016-05-11T16:22:17.000Z",3.6,{}],["2016-05-11T16:22:29.000Z",8.1,{}],["2016-05-11T16:22:47.000Z",3.8000000000000003,{}],["2016-05-11T16:22:59.000Z",8.6,{}],["2016-05-11T16:23:17.000Z",3.8,{}],["2016-05-11T16:23:30.000Z",7.699999999999999,{}],["2016-05-11T16:23:47.000Z",3.7,{}],["2016-05-11T16:24:00.000Z",5.8,{}],["2016-05-11T16:24:17.000Z",4.0,{}],["2016-05-11T16:24:30.000Z",7.8,{}],["2016-05-11T16:24:47.000Z",3.8000000000000003,{}],["2016-05-11T16:25:00.000Z",8.5,{}],["2016-05-11T16:25:18.000Z",4.0,{}],["2016-05-11T16:25:30.000Z",6.6,{}],["2016-05-11T16:25:47.000Z",3.9,{}],["2016-05-11T16:26:00.000Z",5.0,{}],["2016-05-11T16:26:17.000Z",3.6,{}],["2016-05-11T16:26:30.000Z",5.7,{}],["2016-05-11T16:26:47.000Z",4.0,{}],["2016-05-11T16:27:00.000Z",8.0,{}],["2016-05-11T16:27:18.000Z",3.5,{}],["2016-05-11T16:27:30.000Z",6.9,{}],["2016-05-11T16:27:48.000Z",3.6,{}],["2016-05-11T16:28:00.000Z",5.4,{}],["2016-05-11T16:28:17.000Z",4.0,{}],["2016-05-11T16:28:30.000Z",7.199999999999999,{}],["2016-05-11T16:28:48.000Z",3.7,{}],["2016-05-11T16:29:00.000Z",7.9,{}],["2016-05-11T16:29:18.000Z",4.4,{}],["2016-05-11T16:29:30.000Z",5.7,{}],["2016-05-11T16:29:48.000Z",3.9,{}],["2016-05-11T16:30:00.000Z",8.0,{}],["2016-05-11T16:30:18.000Z",3.8000000000000003,{}],["2016-05-11T16:30:30.000Z",7.6,{}],["2016-05-11T16:30:48.000Z",3.5,{}],["2016-05-11T16:31:00.000Z",5.1,{}],["2016-05-11T16:31:18.000Z",4.1,{}],["2016-05-11T16:31:30.000Z",6.2,{}],["2016-05-11T16:31:48.000Z",4.8,{}],["2016-05-11T16:32:00.000Z",7.3,{}],["2016-05-11T16:32:18.000Z",3.8,{}],["2016-05-11T16:32:30.000Z",7.1,{}],["2016-05-11T16:32:48.000Z",4.8,{}],["2016-05-11T16:33:00.000Z",6.1,{}],["2016-05-11T16:33:18.000Z",4.2,{}],["2016-05-11T16:33:30.000Z",6.8999999999999995,{}],["2016-05-11T16:33:48.000Z",3.6,{}],["2016-05-11T16:34:00.000Z",7.6,{}],["2016-05-11T16:34:18.000Z",3.8,{}],["2016-05-11T16:34:30.000Z",6.0,{}],["2016-05-11T16:34:48.000Z",4.7,{}],["2016-05-11T16:35:00.000Z",6.6,{}],["2016-05-11T16:35:18.000Z",4.3,{}],["2016-05-11T16:35:30.000Z",5.199999999999999,{}],["2016-05-11T16:35:48.000Z",4.0,{}],["2016-05-11T16:36:00.000Z",5.5,{}],["2016-05-11T16:36:18.000Z",3.8,{}],["2016-05-11T16:36:30.000Z",6.5,{}],["2016-05-11T16:36:48.000Z",4.3,{}],["2016-05-11T16:37:00.000Z",7.9,{}],["2016-05-11T16:37:18.000Z",4.0,{}],["2016-05-11T16:37:30.000Z",8.0,{}],["2016-05-11T16:37:48.000Z",3.6,{}],["2016-05-11T16:38:00.000Z",6.0,{}],["2016-05-11T16:38:18.000Z",4.1,{}],["2016-05-11T16:38:30.000Z",7.4,{}],["2016-05-11T16:38:48.000Z",4.0,{}],["2016-05-11T16:39:00.000Z",8.6,{}],["2016-05-11T16:39:18.000Z",3.8,{}],["2016-05-11T16:39:30.000Z",5.8,{}],["2016-05-11T16:39:48.000Z",3.8000000000000003,{}],["2016-05-11T16:40:00.000Z",7.699999999999999,{}],["2016-05-11T16:40:18.000Z",3.9,{}],["2016-05-11T16:40:30.000Z",4.9,{}],["2016-05-11T16:40:48.000Z",3.9,{}],["2016-05-11T16:41:00.000Z",4.9,{}],["2016-05-11T16:41:18.000Z",4.0,{}],["2016-05-11T16:41:30.000Z",7.5,{}],["2016-05-11T16:41:48.000Z",3.6,{}],["2016-05-11T16:42:00.000Z",7.8,{}],["2016-05-11T16:42:18.000Z",3.9,{}],["2016-05-11T16:42:30.000Z",7.4,{}],["2016-05-11T16:42:48.000Z",4.2,{}],["2016-05-11T16:43:00.000Z",5.6,{}],["2016-05-11T16:43:19.000Z",3.8,{}],["2016-05-11T16:43:30.000Z",8.6,{}],["2016-05-11T16:43:48.000Z",5.0,{}],["2016-05-11T16:44:00.000Z",7.3,{}],["2016-05-11T16:44:18.000Z",3.6,{}],["2016-05-11T16:44:30.000Z",7.2,{}],["2016-05-11T16:44:48.000Z",4.8,{}],["2016-05-11T16:45:00.000Z",3.7,{}],["2016-05-11T16:45:18.000Z",4.8999999999999995,{}],["2016-05-11T16:45:31.000Z",7.0,{}],["2016-05-11T16:45:48.000Z",3.7,{}],["2016-05-11T16:46:01.000Z",6.1,{}],["2016-05-11T16:46:18.000Z",4.1,{}],["2016-05-11T16:46:31.000Z",7.5,{}],["2016-05-11T16:46:48.000Z",4.1,{}],["2016-05-11T16:47:01.000Z",6.7,{}],["2016-05-11T16:47:18.000Z",3.9,{}],["2016-05-11T16:47:31.000Z",8.0,{}],["2016-05-11T16:47:49.000Z",3.6,{}],["2016-05-11T16:48:01.000Z",6.7,{}],["2016-05-11T16:48:19.000Z",3.7,{}],["2016-05-11T16:48:31.000Z",7.3,{}],["2016-05-11T16:48:48.000Z",3.9,{}],["2016-05-11T16:49:01.000Z",5.2,{}],["2016-05-11T16:49:19.000Z",3.7,{}],["2016-05-11T16:49:31.000Z",7.6,{}],["2016-05-11T16:49:48.000Z",3.8,{}],["2016-05-11T16:50:01.000Z",7.1,{}],["2016-05-11T16:50:18.000Z",3.8,{}],["2016-05-11T16:50:31.000Z",6.1,{}],["2016-05-11T16:50:48.000Z",3.9,{}],["2016-05-11T16:51:01.000Z",5.1,{}],["2016-05-11T16:51:18.000Z",3.7,{}],["2016-05-11T16:51:31.000Z",8.2,{}],["2016-05-11T16:51:49.000Z",3.6,{}],["2016-05-11T16:52:01.000Z",7.6,{}],["2016-05-11T16:52:19.000Z",3.8,{}],["2016-05-11T16:52:31.000Z",8.6,{}],["2016-05-11T16:52:49.000Z",4.199999999999999,{}],["2016-05-11T16:53:01.000Z",6.6,{}],["2016-05-11T16:53:19.000Z",3.9,{}],["2016-05-11T16:53:31.000Z",7.3,{}],["2016-05-11T16:53:49.000Z",3.7,{}],["2016-05-11T16:54:01.000Z",7.5,{}],["2016-05-11T16:54:19.000Z",3.8,{}],["2016-05-11T16:54:31.000Z",8.4,{}],["2016-05-11T16:54:49.000Z",4.699999999999999,{}],["2016-05-11T16:55:01.000Z",6.699999999999999,{}],["2016-05-11T16:55:19.000Z",4.8,{}],["2016-05-11T16:55:31.000Z",5.7,{}],["2016-05-11T16:55:49.000Z",3.9,{}],["2016-05-11T16:56:01.000Z",8.7,{}],["2016-05-11T16:56:19.000Z",4.8,{}],["2016-05-11T16:56:31.000Z",3.3000000000000003,{}],["2016-05-11T16:56:49.000Z",5.3999999999999995,{}],["2016-05-11T16:57:01.000Z",7.4,{}],["2016-05-11T16:57:19.000Z",3.7,{}],["2016-05-11T16:57:31.000Z",8.3,{}],["2016-05-11T16:57:49.000Z",3.7,{}],["2016-05-11T16:58:01.000Z",7.699999999999999,{}],["2016-05-11T16:58:19.000Z",3.8000000000000003,{}],["2016-05-11T16:58:31.000Z",5.1,{}],["2016-05-11T16:58:49.000Z",3.5,{}],["2016-05-11T16:59:01.000Z",8.3,{}],["2016-05-11T16:59:19.000Z",3.9,{}],["2016-05-11T16:59:31.000Z",6.6,{}],["2016-05-11T16:59:49.000Z",3.6,{}],["2016-05-11T17:00:01.000Z",7.3,{}],["2016-05-11T17:00:19.000Z",4.699999999999999,{}],["2016-05-11T17:00:31.000Z",8.1,{}],["2016-05-11T17:00:49.000Z",4.1,{}],["2016-05-11T17:01:01.000Z",8.0,{}],["2016-05-11T17:01:19.000Z",3.7,{}],["2016-05-11T17:01:31.000Z",8.4,{}],["2016-05-11T17:01:49.000Z",3.8000000000000003,{}],["2016-05-11T17:02:01.000Z",3.8,{}],["2016-05-11T17:02:19.000Z",3.6,{}],["2016-05-11T17:02:31.000Z",7.4,{}],["2016-05-11T17:02:49.000Z",4.4,{}],["2016-05-11T17:03:01.000Z",5.4,{}],["2016-05-11T17:03:19.000Z",4.199999999999999,{}],["2016-05-11T17:03:31.000Z",7.4,{}],["2016-05-11T17:03:50.000Z",3.7,{}],["2016-05-11T17:04:01.000Z",7.9,{}],["2016-05-11T17:04:19.000Z",3.5,{}],["2016-05-11T17:04:31.000Z",7.0,{}],["2016-05-11T17:04:49.000Z",4.6,{}],["2016-05-11T17:05:01.000Z",6.699999999999999,{}],["2016-05-11T17:05:19.000Z",4.6,{}],["2016-05-11T17:05:31.000Z",5.5,{}],["2016-05-11T17:05:50.000Z",4.8,{}],["2016-05-11T17:06:01.000Z",8.3,{}],["2016-05-11T17:06:20.000Z",3.8,{}],["2016-05-11T17:06:31.000Z",7.3,{}],["2016-05-11T17:06:49.000Z",4.0,{}],["2016-05-11T17:07:01.000Z",5.699999999999999,{}],["2016-05-11T17:07:19.000Z",4.0,{}],["2016-05-11T17:07:31.000Z",4.4,{}],["2016-05-11T17:07:49.000Z",3.8,{}],["2016-05-11T17:08:01.000Z",4.4,{}],["2016-05-11T17:08:19.000Z",3.9,{}],["2016-05-11T17:08:31.000Z",6.3999999999999995,{}],["2016-05-11T17:08:49.000Z",4.2,{}],["2016-05-11T17:09:01.000Z",7.7,{}],["2016-05-11T17:09:19.000Z",3.9,{}],["2016-05-11T17:09:32.000Z",7.8,{}],["2016-05-11T17:09:49.000Z",3.8,{}],["2016-05-11T17:10:02.000Z",7.0,{}],["2016-05-11T17:10:20.000Z",3.6,{}],["2016-05-11T17:10:32.000Z",6.5,{}],["2016-05-11T17:10:49.000Z",4.2,{}],["2016-05-11T17:11:02.000Z",7.3999999999999995,{}],["2016-05-11T17:11:19.000Z",4.0,{}],["2016-05-11T17:11:32.000Z",7.5,{}],["2016-05-11T17:11:49.000Z",3.5,{}],["2016-05-11T17:12:02.000Z",5.5,{}],["2016-05-11T17:12:20.000Z",4.2,{}],["2016-05-11T17:12:32.000Z",7.5,{}],["2016-05-11T17:12:50.000Z",3.7,{}],["2016-05-11T17:13:02.000Z",7.2,{}],["2016-05-11T17:13:20.000Z",3.9,{}],["2016-05-11T17:13:32.000Z",4.8,{}],["2016-05-11T17:13:50.000Z",3.6,{}],["2016-05-11T17:14:02.000Z",5.9,{}],["2016-05-11T17:14:20.000Z",3.8,{}],["2016-05-11T17:14:32.000Z",6.3,{}],["2016-05-11T17:14:50.000Z",4.199999999999999,{}],["2016-05-11T17:15:02.000Z",6.8,{}],["2016-05-11T17:15:21.000Z",4.0,{}],["2016-05-11T17:15:32.000Z",5.6,{}],["2016-05-11T17:15:50.000Z",3.4,{}],["2016-05-11T17:16:02.000Z",8.2,{}],["2016-05-11T17:16:20.000Z",3.9,{}],["2016-05-11T17:16:32.000Z",9.4,{}],["2016-05-11T17:16:50.000Z",3.8000000000000003,{}],["2016-05-11T17:17:02.000Z",5.4,{}],["2016-05-11T17:17:20.000Z",3.9,{}],["2016-05-11T17:17:32.000Z",6.699999999999999,{}],["2016-05-11T17:17:50.000Z",3.4,{}],["2016-05-11T17:18:02.000Z",7.2,{}],["2016-05-11T17:18:20.000Z",3.9,{}],["2016-05-11T17:18:32.000Z",7.9,{}],["2016-05-11T17:18:51.000Z",3.8000000000000003,{}],["2016-05-11T17:19:02.000Z",2.9,{}],["2016-05-11T17:19:20.000Z",3.5,{}],["2016-05-11T17:19:32.000Z",7.4,{}],["2016-05-11T17:19:50.000Z",3.5,{}],["2016-05-11T17:20:02.000Z",7.0,{}],["2016-05-11T17:20:20.000Z",5.199999999999999,{}],["2016-05-11T17:20:32.000Z",9.6,{}],["2016-05-11T17:20:50.000Z",5.0,{}],["2016-05-11T17:21:02.000Z",5.3,{}],["2016-05-11T17:21:20.000Z",4.3,{}],["2016-05-11T17:21:32.000Z",6.8,{}],["2016-05-11T17:21:50.000Z",4.8,{}],["2016-05-11T17:22:02.000Z",6.2,{}],["2016-05-11T17:22:20.000Z",4.9,{}],["2016-05-11T17:22:32.000Z",6.8,{}],["2016-05-11T17:22:50.000Z",4.8,{}],["2016-05-11T17:23:02.000Z",7.6,{}],["2016-05-11T17:23:20.000Z",3.9,{}],["2016-05-11T17:23:32.000Z",8.7,{}],["2016-05-11T17:23:50.000Z",3.6,{}],["2016-05-11T17:24:02.000Z",6.3,{}],["2016-05-11T17:24:21.000Z",3.6,{}],["2016-05-11T17:24:32.000Z",6.1,{}],["2016-05-11T17:24:50.000Z",4.3999999999999995,{}],["2016-05-11T17:25:02.000Z",4.8,{}],["2016-05-11T17:25:20.000Z",5.1,{}],["2016-05-11T17:25:32.000Z",12.4,{}],["2016-05-11T17:25:50.000Z",4.6,{}],["2016-05-11T17:26:02.000Z",6.8999999999999995,{}],["2016-05-11T17:26:20.000Z",3.9,{}],["2016-05-11T17:26:32.000Z",8.6,{}],["2016-05-11T17:26:50.000Z",4.5,{}],["2016-05-11T17:27:02.000Z",7.9,{}],["2016-05-11T17:27:20.000Z",6.5,{}],["2016-05-11T17:27:32.000Z",7.5,{}],["2016-05-11T17:27:50.000Z",6.6,{}],["2016-05-11T17:28:02.000Z",7.0,{}],["2016-05-11T17:28:20.000Z",5.1,{}],["2016-05-11T17:28:32.000Z",7.4,{}],["2016-05-11T17:28:50.000Z",4.5,{}],["2016-05-11T17:29:02.000Z",7.8,{}],["2016-05-11T17:29:21.000Z",3.7,{}],["2016-05-11T17:29:32.000Z",5.8,{}],["2016-05-11T17:29:51.000Z",3.7,{}],["2016-05-11T17:30:02.000Z",7.2,{}],["2016-05-11T17:30:20.000Z",4.699999999999999,{}],["2016-05-11T17:30:32.000Z",6.9,{}],["2016-05-11T17:30:50.000Z",3.9,{}],["2016-05-11T17:31:02.000Z",6.8,{}],["2016-05-11T17:31:20.000Z",3.7,{}],["2016-05-11T17:31:32.000Z",8.5,{}],["2016-05-11T17:31:51.000Z",3.6,{}],["2016-05-11T17:32:02.000Z",7.1,{}],["2016-05-11T17:32:21.000Z",3.8,{}],["2016-05-11T17:32:32.000Z",6.4,{}],["2016-05-11T17:32:51.000Z",3.6,{}],["2016-05-11T17:33:03.000Z",7.5,{}],["2016-05-11T17:33:21.000Z",3.9,{}],["2016-05-11T17:33:33.000Z",6.9,{}],["2016-05-11T17:33:51.000Z",3.6,{}],["2016-05-11T17:34:03.000Z",8.4,{}],["2016-05-11T17:34:21.000Z",5.5,{}],["2016-05-11T17:34:33.000Z",8.2,{}],["2016-05-11T17:34:51.000Z",3.5,{}],["2016-05-11T17:35:03.000Z",5.3,{}],["2016-05-11T17:35:21.000Z",3.8,{}],["2016-05-11T17:35:33.000Z",9.2,{}],["2016-05-11T17:35:51.000Z",3.8,{}],["2016-05-11T17:36:03.000Z",7.1,{}],["2016-05-11T17:36:21.000Z",4.199999999999999,{}],["2016-05-11T17:36:33.000Z",5.8999999999999995,{}],["2016-05-11T17:36:51.000Z",3.6,{}],["2016-05-11T17:37:03.000Z",8.8,{}],["2016-05-11T17:37:21.000Z",3.7,{}],["2016-05-11T17:37:33.000Z",6.1,{}],["2016-05-11T17:37:51.000Z",3.8000000000000003,{}],["2016-05-11T17:38:03.000Z",9.1,{}],["2016-05-11T17:38:21.000Z",4.1,{}],["2016-05-11T17:38:33.000Z",8.299999999999999,{}],["2016-05-11T17:38:51.000Z",3.5,{}],["2016-05-11T17:39:03.000Z",6.0,{}],["2016-05-11T17:39:21.000Z",3.7,{}],["2016-05-11T17:39:33.000Z",9.5,{}],["2016-05-11T17:39:51.000Z",4.8,{}],["2016-05-11T17:40:03.000Z",9.1,{}],["2016-05-11T17:40:21.000Z",4.3,{}],["2016-05-11T17:40:33.000Z",6.2,{}],["2016-05-11T17:40:51.000Z",3.7,{}],["2016-05-11T17:41:03.000Z",7.7,{}],["2016-05-11T17:41:21.000Z",3.9,{}],["2016-05-11T17:41:33.000Z",6.8999999999999995,{}],["2016-05-11T17:41:51.000Z",3.4,{}],["2016-05-11T17:42:03.000Z",4.9,{}],["2016-05-11T17:42:21.000Z",3.9,{}],["2016-05-11T17:42:33.000Z",10.2,{}],["2016-05-11T17:42:51.000Z",3.6,{}],["2016-05-11T17:43:03.000Z",6.8,{}],["2016-05-11T17:43:21.000Z",3.5,{}],["2016-05-11T17:43:33.000Z",6.1,{}],["2016-05-11T17:43:51.000Z",3.7,{}],["2016-05-11T17:44:03.000Z",9.8,{}],["2016-05-11T17:44:21.000Z",5.2,{}],["2016-05-11T17:44:33.000Z",7.2,{}],["2016-05-11T17:44:51.000Z",4.8,{}],["2016-05-11T17:45:03.000Z",5.3,{}],["2016-05-11T17:45:21.000Z",3.6,{}],["2016-05-11T17:45:33.000Z",8.6,{}],["2016-05-11T17:45:51.000Z",3.9,{}],["2016-05-11T17:46:03.000Z",8.2,{}],["2016-05-11T17:46:21.000Z",4.1,{}],["2016-05-11T17:46:33.000Z",9.0,{}],["2016-05-11T17:46:51.000Z",3.5,{}],["2016-05-11T17:47:03.000Z",8.6,{}],["2016-05-11T17:47:22.000Z",3.8000000000000003,{}],["2016-05-11T17:47:33.000Z",5.9,{}],["2016-05-11T17:47:51.000Z",3.6,{}],["2016-05-11T17:48:03.000Z",7.2,{}],["2016-05-11T17:48:22.000Z",4.0,{}],["2016-05-11T17:48:33.000Z",6.8999999999999995,{}],["2016-05-11T17:48:51.000Z",3.6,{}],["2016-05-11T17:49:03.000Z",8.1,{}],["2016-05-11T17:49:21.000Z",3.4,{}],["2016-05-11T17:49:33.000Z",7.6,{}],["2016-05-11T17:49:51.000Z",3.3,{}],["2016-05-11T17:50:03.000Z",5.7,{}],["2016-05-11T17:50:21.000Z",3.8,{}],["2016-05-11T17:50:33.000Z",9.6,{}],["2016-05-11T17:50:51.000Z",3.4,{}],["2016-05-11T17:51:03.000Z",6.3,{}],["2016-05-11T17:51:21.000Z",3.7,{}],["2016-05-11T17:51:33.000Z",6.3,{}],["2016-05-11T17:51:51.000Z",3.5,{}],["2016-05-11T17:52:03.000Z",8.2,{}],["2016-05-11T17:52:22.000Z",3.9,{}],["2016-05-11T17:52:33.000Z",9.7,{}],["2016-05-11T17:52:52.000Z",3.5,{}],["2016-05-11T17:53:03.000Z",7.3,{}],["2016-05-11T17:53:22.000Z",4.2,{}],["2016-05-11T17:53:33.000Z",6.5,{}],["2016-05-11T17:53:52.000Z",4.1,{}],["2016-05-11T17:54:03.000Z",6.0,{}],["2016-05-11T17:54:22.000Z",4.1,{}],["2016-05-11T17:54:33.000Z",5.5,{}],["2016-05-11T17:54:52.000Z",3.7,{}],["2016-05-11T17:55:03.000Z",8.4,{}],["2016-05-11T17:55:22.000Z",3.6,{}],["2016-05-11T17:55:33.000Z",7.6,{}],["2016-05-11T17:55:52.000Z",3.8,{}],["2016-05-11T17:56:03.000Z",9.3,{}],["2016-05-11T17:56:22.000Z",5.3,{}],["2016-05-11T17:56:34.000Z",8.299999999999999,{}],["2016-05-11T17:56:52.000Z",4.1,{}],["2016-05-11T17:57:04.000Z",6.4,{}],["2016-05-11T17:57:22.000Z",3.9,{}],["2016-05-11T17:57:34.000Z",8.9,{}],["2016-05-11T17:57:52.000Z",5.1,{}],["2016-05-11T17:58:04.000Z",6.8,{}],["2016-05-11T17:58:22.000Z",3.9,{}],["2016-05-11T17:58:34.000Z",7.0,{}],["2016-05-11T17:58:52.000Z",3.8000000000000003,{}],["2016-05-11T17:59:04.000Z",6.1,{}],["2016-05-11T17:59:22.000Z",4.6,{}],["2016-05-11T17:59:34.000Z",8.7,{}],["2016-05-11T17:59:52.000Z",3.8000000000000003,{}],["2016-05-11T18:00:04.000Z",8.0,{}],["2016-05-11T18:00:22.000Z",5.4,{}],["2016-05-11T18:00:34.000Z",5.8,{}],["2016-05-11T18:00:52.000Z",3.5,{}],["2016-05-11T18:01:04.000Z",7.3,{}],["2016-05-11T18:01:23.000Z",3.7,{}],["2016-05-11T18:01:34.000Z",8.7,{}],["2016-05-11T18:01:53.000Z",3.5,{}],["2016-05-11T18:02:04.000Z",7.2,{}],["2016-05-11T18:02:22.000Z",4.3,{}],["2016-05-11T18:02:34.000Z",8.8,{}],["2016-05-11T18:02:52.000Z",3.7,{}],["2016-05-11T18:03:04.000Z",7.0,{}],["2016-05-11T18:03:22.000Z",3.6,{}],["2016-05-11T18:03:34.000Z",6.4,{}],["2016-05-11T18:03:52.000Z",4.5,{}],["2016-05-11T18:04:04.000Z",8.5,{}],["2016-05-11T18:04:22.000Z",5.1,{}],["2016-05-11T18:04:34.000Z",7.6,{}],["2016-05-11T18:04:52.000Z",3.6,{}],["2016-05-11T18:05:04.000Z",6.0,{}],["2016-05-11T18:05:22.000Z",4.4,{}],["2016-05-11T18:05:34.000Z",8.0,{}],["2016-05-11T18:05:52.000Z",4.0,{}],["2016-05-11T18:06:04.000Z",5.9,{}],["2016-05-11T18:06:22.000Z",3.9,{}],["2016-05-11T18:06:34.000Z",9.0,{}],["2016-05-11T18:06:52.000Z",3.7,{}],["2016-05-11T18:07:04.000Z",7.3999999999999995,{}],["2016-05-11T18:07:22.000Z",3.7,{}],["2016-05-11T18:07:34.000Z",7.9,{}],["2016-05-11T18:07:53.000Z",3.6,{}],["2016-05-11T18:08:04.000Z",6.7,{}],["2016-05-11T18:08:23.000Z",4.2,{}],["2016-05-11T18:08:34.000Z",7.3999999999999995,{}],["2016-05-11T18:08:52.000Z",3.7,{}],["2016-05-11T18:09:04.000Z",6.4,{}],["2016-05-11T18:09:22.000Z",3.7,{}],["2016-05-11T18:09:34.000Z",6.4,{}],["2016-05-11T18:09:52.000Z",3.3000000000000003,{}],["2016-05-11T18:10:04.000Z",7.8999999999999995,{}],["2016-05-11T18:10:22.000Z",5.1,{}],["2016-05-11T18:10:34.000Z",3.9,{}],["2016-05-11T18:10:52.000Z",4.699999999999999,{}],["2016-05-11T18:11:04.000Z",7.5,{}],["2016-05-11T18:11:22.000Z",4.7,{}],["2016-05-11T18:11:34.000Z",7.6,{}],["2016-05-11T18:11:52.000Z",3.5,{}],["2016-05-11T18:12:04.000Z",6.5,{}],["2016-05-11T18:12:22.000Z",4.5,{}],["2016-05-11T18:12:34.000Z",6.5,{}],["2016-05-11T18:12:52.000Z",4.1,{}],["2016-05-11T18:13:04.000Z",8.6,{}],["2016-05-11T18:13:22.000Z",4.1,{}],["2016-05-11T18:13:34.000Z",8.0,{}],["2016-05-11T18:13:53.000Z",3.5,{}],["2016-05-11T18:14:04.000Z",6.3,{}],["2016-05-11T18:14:22.000Z",4.3,{}],["2016-05-11T18:14:34.000Z",7.1,{}],["2016-05-11T18:14:52.000Z",4.3,{}],["2016-05-11T18:15:04.000Z",6.9,{}],["2016-05-11T18:15:22.000Z",4.3,{}],["2016-05-11T18:15:34.000Z",7.5,{}],["2016-05-11T18:15:52.000Z",3.4,{}],["2016-05-11T18:16:04.000Z",3.0,{}],["2016-05-11T18:16:23.000Z",4.3999999999999995,{}],["2016-05-11T18:16:34.000Z",8.3,{}],["2016-05-11T18:16:53.000Z",3.6,{}],["2016-05-11T18:17:04.000Z",6.1,{}],["2016-05-11T18:17:23.000Z",3.6,{}],["2016-05-11T18:17:34.000Z",6.5,{}],["2016-05-11T18:17:53.000Z",3.6,{}],["2016-05-11T18:18:05.000Z",8.7,{}],["2016-05-11T18:18:23.000Z",4.3999999999999995,{}],["2016-05-11T18:18:35.000Z",7.3,{}],["2016-05-11T18:18:53.000Z",3.5,{}],["2016-05-11T18:19:05.000Z",5.2,{}],["2016-05-11T18:19:23.000Z",3.7,{}],["2016-05-11T18:19:35.000Z",9.2,{}],["2016-05-11T18:19:53.000Z",3.7,{}],["2016-05-11T18:20:05.000Z",9.2,{}],["2016-05-11T18:20:23.000Z",3.9,{}],["2016-05-11T18:20:35.000Z",6.7,{}],["2016-05-11T18:20:53.000Z",3.4,{}],["2016-05-11T18:21:05.000Z",7.6,{}],["2016-05-11T18:21:23.000Z",3.7,{}],["2016-05-11T18:21:35.000Z",6.8,{}],["2016-05-11T18:21:53.000Z",3.5,{}],["2016-05-11T18:22:05.000Z",5.5,{}],["2016-05-11T18:22:23.000Z",4.0,{}],["2016-05-11T18:22:35.000Z",8.4,{}],["2016-05-11T18:22:53.000Z",3.6,{}],["2016-05-11T18:23:05.000Z",7.5,{}],["2016-05-11T18:23:23.000Z",3.9,{}],["2016-05-11T18:23:35.000Z",5.9,{}],["2016-05-11T18:23:53.000Z",3.8,{}],["2016-05-11T18:24:05.000Z",8.7,{}],["2016-05-11T18:24:23.000Z",4.1,{}],["2016-05-11T18:24:35.000Z",6.4,{}],["2016-05-11T18:24:53.000Z",3.5,{}],["2016-05-11T18:25:05.000Z",8.1,{}],["2016-05-11T18:25:23.000Z",3.9,{}],["2016-05-11T18:25:35.000Z",7.5,{}],["2016-05-11T18:25:53.000Z",3.5,{}],["2016-05-11T18:26:05.000Z",5.2,{}],["2016-05-11T18:26:23.000Z",4.3,{}],["2016-05-11T18:26:35.000Z",7.0,{}],["2016-05-11T18:26:53.000Z",3.7,{}],["2016-05-11T18:27:05.000Z",5.0,{}],["2016-05-11T18:27:23.000Z",3.6,{}],["2016-05-11T18:27:35.000Z",7.3,{}],["2016-05-11T18:27:54.000Z",4.4,{}],["2016-05-11T18:28:05.000Z",7.1,{}],["2016-05-11T18:28:23.000Z",3.8,{}],["2016-05-11T18:28:35.000Z",7.6,{}],["2016-05-11T18:28:53.000Z",3.5,{}],["2016-05-11T18:29:05.000Z",8.0,{}],["2016-05-11T18:29:23.000Z",3.7,{}],["2016-05-11T18:29:35.000Z",6.0,{}],["2016-05-11T18:29:53.000Z",3.8,{}],["2016-05-11T18:30:05.000Z",7.5,{}],["2016-05-11T18:30:24.000Z",4.6,{}],["2016-05-11T18:30:35.000Z",8.6,{}],["2016-05-11T18:30:53.000Z",5.5,{}],["2016-05-11T18:31:05.000Z",8.6,{}],["2016-05-11T18:31:23.000Z",5.8,{}],["2016-05-11T18:31:35.000Z",8.9,{}],["2016-05-11T18:31:53.000Z",4.8,{}],["2016-05-11T18:32:05.000Z",5.9,{}],["2016-05-11T18:32:23.000Z",4.5,{}],["2016-05-11T18:32:35.000Z",7.1,{}],["2016-05-11T18:32:53.000Z",4.2,{}],["2016-05-11T18:33:05.000Z",4.7,{}],["2016-05-11T18:33:23.000Z",4.2,{}],["2016-05-11T18:33:35.000Z",9.0,{}],["2016-05-11T18:33:54.000Z",4.1,{}],["2016-05-11T18:34:05.000Z",7.9,{}],["2016-05-11T18:34:23.000Z",3.8,{}],["2016-05-11T18:34:35.000Z",7.3999999999999995,{}],["2016-05-11T18:34:53.000Z",4.5,{}],["2016-05-11T18:35:05.000Z",7.9,{}],["2016-05-11T18:35:23.000Z",3.9,{}],["2016-05-11T18:35:35.000Z",7.4,{}],["2016-05-11T18:35:53.000Z",3.9,{}],["2016-05-11T18:36:23.000Z",3.7,{}],["2016-05-11T18:36:53.000Z",3.9,{}],["2016-05-11T18:37:23.000Z",4.3,{}],["2016-05-11T18:37:53.000Z",4.3,{}],["2016-05-11T18:38:23.000Z",4.4,{}],["2016-05-11T18:38:53.000Z",4.1,{}],["2016-05-11T18:39:24.000Z",4.1,{}],["2016-05-11T18:39:53.000Z",4.1,{}],["2016-05-11T18:40:24.000Z",3.8,{}],["2016-05-11T18:40:53.000Z",3.8,{}],["2016-05-11T18:41:23.000Z",3.6,{}],["2016-05-11T18:41:54.000Z",4.3,{}],["2016-05-11T18:42:24.000Z",3.8,{}],["2016-05-11T18:42:54.000Z",3.9,{}],["2016-05-11T18:43:24.000Z",3.7,{}],["2016-05-11T18:43:54.000Z",3.9,{}],["2016-05-11T21:57:44.000Z",5.1,{}],["2016-05-11T21:58:14.000Z",7.1,{}],["2016-05-11T21:58:44.000Z",7.7,{}],["2016-05-11T21:59:14.000Z",6.8,{}],["2016-05-11T21:59:44.000Z",6.2,{}],["2016-05-11T22:00:14.000Z",8.0,{}],["2016-05-11T22:00:44.000Z",8.0,{}],["2016-05-11T22:01:14.000Z",5.199999999999999,{}],["2016-05-11T22:01:44.000Z",7.9,{}],["2016-05-11T22:02:14.000Z",6.9,{}],["2016-05-11T22:02:44.000Z",5.6,{}],["2016-05-11T22:03:14.000Z",4.5,{}],["2016-05-11T22:03:44.000Z",8.4,{}],["2016-05-11T22:04:14.000Z",8.1,{}],["2016-05-11T22:04:44.000Z",5.699999999999999,{}],["2016-05-11T22:05:14.000Z",5.8,{}],["2016-05-11T22:05:44.000Z",7.5,{}],["2016-05-11T22:06:14.000Z",6.4,{}],["2016-05-11T22:06:44.000Z",7.3,{}],["2016-05-11T22:07:14.000Z",5.0,{}],["2016-05-11T22:07:44.000Z",6.3999999999999995,{}],["2016-05-11T22:08:14.000Z",5.2,{}],["2016-05-11T22:08:44.000Z",5.0,{}],["2016-05-11T22:09:14.000Z",7.199999999999999,{}],["2016-05-11T22:09:44.000Z",8.7,{}],["2016-05-11T22:10:14.000Z",7.1,{}],["2016-05-11T22:10:44.000Z",7.0,{}],["2016-05-11T22:11:14.000Z",6.6,{}],["2016-05-11T22:11:44.000Z",7.7,{}],["2016-05-11T22:12:15.000Z",6.9,{}],["2016-05-11T22:12:45.000Z",6.1,{}],["2016-05-11T22:13:15.000Z",8.0,{}],["2016-05-11T22:13:45.000Z",5.4,{}],["2016-05-11T22:14:15.000Z",4.8,{}],["2016-05-11T22:14:45.000Z",8.0,{}],["2016-05-11T22:15:15.000Z",6.9,{}],["2016-05-11T22:15:45.000Z",7.8,{}],["2016-05-11T22:16:15.000Z",7.1,{}],["2016-05-11T22:16:45.000Z",6.1,{}],["2016-05-11T22:17:15.000Z",6.5,{}],["2016-05-11T22:17:45.000Z",7.5,{}],["2016-05-11T22:18:15.000Z",6.2,{}],["2016-05-11T22:18:45.000Z",7.3,{}],["2016-05-11T22:19:15.000Z",7.7,{}],["2016-05-11T22:19:45.000Z",4.2,{}],["2016-05-11T22:20:15.000Z",6.0,{}],["2016-05-11T22:20:45.000Z",7.9,{}],["2016-05-11T22:21:15.000Z",6.2,{}],["2016-05-11T22:21:45.000Z",7.9,{}],["2016-05-11T22:22:15.000Z",5.7,{}],["2016-05-11T22:22:45.000Z",8.2,{}],["2016-05-11T22:23:15.000Z",9.1,{}],["2016-05-11T22:23:45.000Z",8.4,{}],["2016-05-11T22:24:15.000Z",6.0,{}],["2016-05-11T22:24:45.000Z",7.7,{}],["2016-05-11T22:25:15.000Z",5.2,{}],["2016-05-11T22:25:45.000Z",4.8,{}],["2016-05-11T22:26:15.000Z",6.7,{}],["2016-05-11T22:26:45.000Z",6.8,{}],["2016-05-11T22:27:15.000Z",7.2,{}],["2016-05-11T22:27:45.000Z",6.3,{}],["2016-05-11T22:28:15.000Z",7.9,{}],["2016-05-11T22:28:45.000Z",6.8,{}],["2016-05-11T22:29:15.000Z",9.0,{}],["2016-05-11T22:29:45.000Z",5.9,{}],["2016-05-11T22:30:15.000Z",7.1,{}],["2016-05-11T22:30:45.000Z",4.6,{}],["2016-05-11T22:31:15.000Z",5.3,{}],["2016-05-11T22:31:45.000Z",8.1,{}],["2016-05-11T22:32:15.000Z",7.6,{}],["2016-05-11T22:32:45.000Z",6.8,{}],["2016-05-11T22:33:16.000Z",5.9,{}],["2016-05-11T22:33:46.000Z",6.1,{}],["2016-05-11T22:34:16.000Z",8.6,{}],["2016-05-11T22:34:46.000Z",8.2,{}],["2016-05-11T22:35:16.000Z",6.1,{}],["2016-05-11T22:35:46.000Z",7.0,{}],["2016-05-11T22:36:16.000Z",7.3,{}],["2016-05-11T22:36:46.000Z",5.9,{}],["2016-05-11T22:37:16.000Z",6.1,{}],["2016-05-11T22:37:46.000Z",7.9,{}],["2016-05-11T22:38:16.000Z",7.3,{}],["2016-05-11T22:38:46.000Z",6.6,{}],["2016-05-11T22:39:16.000Z",7.3,{}],["2016-05-11T22:39:46.000Z",8.2,{}],["2016-05-11T22:40:16.000Z",5.0,{}],["2016-05-11T22:40:46.000Z",8.9,{}],["2016-05-11T22:41:16.000Z",7.6,{}],["2016-05-11T22:41:46.000Z",8.3,{}],["2016-05-11T22:42:16.000Z",4.9,{}],["2016-05-11T22:42:46.000Z",6.3,{}],["2016-05-11T22:43:16.000Z",5.0,{}],["2016-05-11T22:43:46.000Z",10.4,{}],["2016-05-11T22:44:16.000Z",9.0,{}],["2016-05-11T22:44:46.000Z",5.3999999999999995,{}],["2016-05-11T22:45:16.000Z",7.8,{}],["2016-05-11T22:45:46.000Z",7.9,{}],["2016-05-11T22:46:16.000Z",6.2,{}],["2016-05-11T22:46:46.000Z",5.8,{}],["2016-05-11T22:47:16.000Z",8.1,{}],["2016-05-11T22:47:46.000Z",5.5,{}],["2016-05-11T22:48:16.000Z",6.6,{}],["2016-05-11T22:48:46.000Z",8.2,{}],["2016-05-11T22:49:16.000Z",7.5,{}],["2016-05-11T22:49:46.000Z",8.1,{}],["2016-05-11T22:50:16.000Z",5.1,{}],["2016-05-11T22:50:46.000Z",7.8,{}],["2016-05-11T22:51:16.000Z",7.2,{}],["2016-05-11T22:51:46.000Z",5.5,{}],["2016-05-11T22:52:16.000Z",7.6,{}],["2016-05-11T22:52:46.000Z",4.9,{}],["2016-05-11T22:53:16.000Z",6.3,{}],["2016-05-11T22:53:46.000Z",7.8,{}],["2016-05-11T22:54:17.000Z",7.0,{}],["2016-05-11T22:54:47.000Z",6.0,{}],["2016-05-11T22:55:17.000Z",5.2,{}],["2016-05-11T22:55:47.000Z",6.8,{}],["2016-05-11T22:56:17.000Z",7.6,{}],["2016-05-11T22:56:47.000Z",7.3,{}],["2016-05-11T22:57:17.000Z",5.2,{}],["2016-05-11T22:57:47.000Z",7.1,{}],["2016-05-11T22:58:17.000Z",7.4,{}],["2016-05-11T22:58:47.000Z",2.8,{}],["2016-05-11T22:59:17.000Z",5.8,{}],["2016-05-11T22:59:47.000Z",6.1,{}],["2016-05-11T23:00:17.000Z",6.5,{}],["2016-05-11T23:00:47.000Z",7.8999999999999995,{}],["2016-05-11T23:01:17.000Z",7.1,{}],["2016-05-11T23:01:47.000Z",6.7,{}],["2016-05-11T23:02:17.000Z",8.0,{}],["2016-05-11T23:02:47.000Z",6.4,{}],["2016-05-11T23:03:17.000Z",7.9,{}],["2016-05-11T23:03:47.000Z",6.5,{}],["2016-05-11T23:04:17.000Z",3.3,{}],["2016-05-11T23:04:47.000Z",6.4,{}],["2016-05-11T23:05:17.000Z",7.8,{}],["2016-05-11T23:05:47.000Z",5.8,{}],["2016-05-11T23:06:17.000Z",8.0,{}],["2016-05-11T23:06:47.000Z",7.4,{}],["2016-05-11T23:07:17.000Z",8.0,{}],["2016-05-11T23:07:47.000Z",6.699999999999999,{}],["2016-05-11T23:08:17.000Z",6.0,{}],["2016-05-11T23:08:47.000Z",7.5,{}],["2016-05-11T23:09:17.000Z",6.8,{}],["2016-05-11T23:09:47.000Z",5.3999999999999995,{}],["2016-05-11T23:10:17.000Z",5.2,{}],["2016-05-11T23:10:47.000Z",7.1,{}],["2016-05-11T23:11:17.000Z",7.8,{}],["2016-05-11T23:11:47.000Z",5.5,{}],["2016-05-11T23:12:17.000Z",8.7,{}],["2016-05-11T23:12:47.000Z",6.3,{}],["2016-05-11T23:13:17.000Z",6.5,{}],["2016-05-11T23:13:47.000Z",5.9,{}],["2016-05-11T23:14:17.000Z",7.3,{}],["2016-05-11T23:14:47.000Z",6.3999999999999995,{}],["2016-05-11T23:15:17.000Z",5.5,{}],["2016-05-11T23:15:47.000Z",5.0,{}],["2016-05-11T23:16:17.000Z",8.1,{}],["2016-05-11T23:16:47.000Z",5.0,{}],["2016-05-11T23:17:17.000Z",7.3,{}],["2016-05-11T23:17:48.000Z",8.4,{}],["2016-05-11T23:18:18.000Z",7.4,{}],["2016-05-11T23:18:48.000Z",5.699999999999999,{}],["2016-05-11T23:19:18.000Z",6.9,{}],["2016-05-11T23:19:48.000Z",7.5,{}],["2016-05-11T23:20:18.000Z",7.7,{}],["2016-05-11T23:20:48.000Z",7.8,{}],["2016-05-11T23:21:18.000Z",5.5,{}],["2016-05-11T23:21:48.000Z",5.6,{}],["2016-05-11T23:22:18.000Z",6.6,{}],["2016-05-11T23:22:48.000Z",7.2,{}],["2016-05-11T23:23:18.000Z",7.4,{}],["2016-05-11T23:23:48.000Z",5.8,{}],["2016-05-11T23:24:18.000Z",7.0,{}],["2016-05-11T23:24:48.000Z",8.3,{}],["2016-05-11T23:25:18.000Z",7.6,{}],["2016-05-11T23:25:48.000Z",8.3,{}],["2016-05-11T23:26:18.000Z",4.8,{}],["2016-05-11T23:26:48.000Z",4.8,{}],["2016-05-11T23:27:18.000Z",5.0,{}],["2016-05-11T23:27:48.000Z",8.0,{}],["2016-05-11T23:28:18.000Z",6.3,{}],["2016-05-11T23:28:48.000Z",4.6,{}],["2016-05-11T23:29:18.000Z",7.6,{}],["2016-05-11T23:29:48.000Z",5.9,{}],["2016-05-11T23:30:18.000Z",6.0,{}],["2016-05-11T23:30:48.000Z",5.7,{}],["2016-05-11T23:31:18.000Z",6.5,{}],["2016-05-11T23:31:48.000Z",5.199999999999999,{}],["2016-05-11T23:32:18.000Z",4.2,{}],["2016-05-11T23:32:48.000Z",6.1,{}],["2016-05-11T23:33:18.000Z",6.8,{}],["2016-05-11T23:33:48.000Z",6.1,{}],["2016-05-11T23:34:18.000Z",6.6,{}],["2016-05-11T23:34:48.000Z",6.4,{}],["2016-05-11T23:35:18.000Z",4.4,{}],["2016-05-11T23:35:48.000Z",7.0,{}],["2016-05-11T23:36:18.000Z",6.1,{}],["2016-05-11T23:36:48.000Z",8.0,{}],["2016-05-11T23:37:18.000Z",6.3,{}],["2016-05-11T23:37:48.000Z",3.9,{}],["2016-05-11T23:38:18.000Z",6.8,{}],["2016-05-11T23:38:48.000Z",4.4,{}],["2016-05-11T23:39:18.000Z",1.6,{}],["2016-05-11T23:39:48.000Z",1.9,{}],["2016-05-11T23:40:18.000Z",2.5,{}],["2016-05-11T23:40:48.000Z",4.2,{}],["2016-05-11T23:41:18.000Z",2.8,{}],["2016-05-11T23:41:48.000Z",2.3000000000000003,{}],["2016-05-11T23:42:19.000Z",2.1,{}],["2016-05-11T23:42:49.000Z",4.6,{}],["2016-05-11T23:43:19.000Z",2.6,{}],["2016-05-11T23:43:49.000Z",1.7000000000000002,{}],["2016-05-11T23:44:19.000Z",2.3,{}],["2016-05-11T23:44:49.000Z",3.8,{}],["2016-05-11T23:45:19.000Z",1.7000000000000002,{}],["2016-05-11T23:45:49.000Z",1.6,{}],["2016-05-11T23:46:19.000Z",2.1,{}],["2016-05-11T23:46:49.000Z",3.9,{}],["2016-05-11T23:47:19.000Z",1.7,{}],["2016-05-11T23:47:49.000Z",1.8,{}],["2016-05-11T23:48:19.000Z",2.3,{}],["2016-05-11T23:48:49.000Z",4.1,{}],["2016-05-11T23:49:19.000Z",2.0,{}],["2016-05-11T23:49:49.000Z",1.7000000000000002,{}],["2016-05-11T23:50:19.000Z",2.1,{}],["2016-05-11T23:50:49.000Z",1.6,{}],["2016-05-11T23:51:19.000Z",3.6,{}],["2016-05-11T23:51:49.000Z",1.6,{}],["2016-05-11T23:52:19.000Z",2.1,{}],["2016-05-11T23:52:49.000Z",1.5,{}],["2016-05-11T23:53:19.000Z",3.9,{}],["2016-05-11T23:53:49.000Z",1.9,{}],["2016-05-11T23:54:19.000Z",3.0,{}],["2016-05-11T23:54:49.000Z",1.6,{}],["2016-05-11T23:55:19.000Z",4.2,{}],["2016-05-11T23:55:49.000Z",1.6,{}],["2016-05-11T23:56:19.000Z",2.0,{}],["2016-05-11T23:56:49.000Z",1.7000000000000002,{}],["2016-05-11T23:57:19.000Z",3.2,{}],["2016-05-11T23:57:49.000Z",3.8,{}],["2016-05-11T23:58:19.000Z",1.7,{}],["2016-05-11T23:58:49.000Z",1.7000000000000002,{}],["2016-05-11T23:59:19.000Z",3.9,{}],["2016-05-11T23:59:49.000Z",2.8,{}],["2016-05-12T00:00:19.000Z",1.9000000000000001,{}],["2016-05-12T00:00:49.000Z",1.5,{}],["2016-05-12T00:01:19.000Z",3.6,{}],["2016-05-12T00:01:49.000Z",2.2,{}],["2016-05-12T00:02:19.000Z",1.7,{}],["2016-05-12T00:02:49.000Z",1.7,{}],["2016-05-12T00:03:19.000Z",3.9,{}],["2016-05-12T00:03:49.000Z",5.3999999999999995,{}],["2016-05-12T00:04:19.000Z",6.3,{}],["2016-05-12T00:04:49.000Z",7.2,{}],["2016-05-12T00:05:19.000Z",2.8,{}],["2016-05-12T00:05:49.000Z",7.8,{}],["2016-05-12T00:06:19.000Z",7.6,{}],["2016-05-12T00:06:49.000Z",6.8,{}],["2016-05-12T00:07:20.000Z",5.6,{}],["2016-05-12T00:07:50.000Z",7.8,{}],["2016-05-12T00:08:20.000Z",5.9,{}],["2016-05-12T00:08:50.000Z",5.1,{}],["2016-05-12T00:09:20.000Z",6.1,{}],["2016-05-12T00:09:50.000Z",7.0,{}],["2016-05-12T00:10:20.000Z",5.2,{}],["2016-05-12T00:10:50.000Z",5.1,{}],["2016-05-12T00:11:20.000Z",4.8,{}],["2016-05-12T00:11:50.000Z",7.5,{}],["2016-05-12T00:12:20.000Z",7.1,{}],["2016-05-12T00:12:50.000Z",6.4,{}],["2016-05-12T00:13:20.000Z",5.0,{}],["2016-05-12T00:13:50.000Z",6.6,{}],["2016-05-12T00:14:20.000Z",8.8,{}],["2016-05-12T00:14:50.000Z",5.5,{}],["2016-05-12T00:15:20.000Z",6.6,{}],["2016-05-12T00:15:50.000Z",8.0,{}],["2016-05-12T00:16:20.000Z",2.8,{}],["2016-05-12T00:16:50.000Z",6.5,{}],["2016-05-12T00:17:20.000Z",6.1,{}],["2016-05-12T00:17:50.000Z",7.3,{}],["2016-05-12T00:18:20.000Z",5.9,{}],["2016-05-12T00:18:50.000Z",6.5,{}],["2016-05-12T00:19:20.000Z",8.2,{}],["2016-05-12T00:19:50.000Z",6.6,{}],["2016-05-12T00:20:20.000Z",5.5,{}],["2016-05-12T00:20:50.000Z",7.3999999999999995,{}],["2016-05-12T00:21:20.000Z",6.5,{}],["2016-05-12T00:21:50.000Z",3.1,{}],["2016-05-12T00:22:20.000Z",6.5,{}],["2016-05-12T00:22:50.000Z",8.5,{}],["2016-05-12T00:23:20.000Z",5.2,{}],["2016-05-12T00:23:50.000Z",7.3,{}],["2016-05-12T00:24:20.000Z",7.2,{}],["2016-05-12T00:24:50.000Z",5.0,{}],["2016-05-12T00:25:20.000Z",6.5,{}],["2016-05-12T00:25:50.000Z",7.2,{}],["2016-05-12T00:26:20.000Z",5.7,{}],["2016-05-12T00:26:50.000Z",6.3,{}],["2016-05-12T00:27:20.000Z",5.0,{}],["2016-05-12T00:27:50.000Z",7.0,{}],["2016-05-12T00:28:20.000Z",5.9,{}],["2016-05-12T00:28:50.000Z",7.0,{}],["2016-05-12T00:29:20.000Z",6.3,{}],["2016-05-12T00:29:50.000Z",5.3,{}],["2016-05-12T00:30:21.000Z",6.6,{}],["2016-05-12T00:30:51.000Z",7.2,{}],["2016-05-12T00:31:21.000Z",5.8999999999999995,{}],["2016-05-12T00:31:51.000Z",6.1,{}],["2016-05-12T00:32:21.000Z",7.5,{}],["2016-05-12T00:32:51.000Z",5.0,{}],["2016-05-12T00:33:21.000Z",5.7,{}],["2016-05-12T00:33:51.000Z",7.5,{}],["2016-05-12T00:34:21.000Z",8.5,{}],["2016-05-12T00:34:51.000Z",6.3,{}],["2016-05-12T00:35:21.000Z",5.5,{}],["2016-05-12T00:35:51.000Z",6.6,{}],["2016-05-12T00:36:21.000Z",7.4,{}],["2016-05-12T00:36:51.000Z",6.4,{}],["2016-05-12T00:37:21.000Z",6.6,{}],["2016-05-12T00:37:51.000Z",7.2,{}],["2016-05-12T00:38:21.000Z",4.9,{}],["2016-05-12T00:38:51.000Z",5.0,{}],["2016-05-12T00:39:21.000Z",8.4,{}],["2016-05-12T00:39:51.000Z",7.4,{}],["2016-05-12T00:40:21.000Z",5.2,{}],["2016-05-12T00:40:51.000Z",6.5,{}],["2016-05-12T00:41:21.000Z",7.0,{}],["2016-05-12T00:41:51.000Z",5.7,{}],["2016-05-12T00:42:21.000Z",6.6,{}],["2016-05-12T00:42:51.000Z",6.2,{}],["2016-05-12T00:43:21.000Z",6.5,{}],["2016-05-12T00:43:51.000Z",5.3,{}],["2016-05-12T00:44:21.000Z",5.0,{}],["2016-05-12T00:44:51.000Z",7.1,{}],["2016-05-12T00:45:21.000Z",6.1,{}],["2016-05-12T00:45:51.000Z",6.8,{}],["2016-05-12T00:46:21.000Z",7.3999999999999995,{}],["2016-05-12T00:46:51.000Z",6.6,{}],["2016-05-12T00:47:21.000Z",7.0,{}],["2016-05-12T00:47:51.000Z",6.8,{}],["2016-05-12T00:48:21.000Z",7.6,{}],["2016-05-12T00:48:51.000Z",6.0,{}],["2016-05-12T00:49:21.000Z",6.1,{}],["2016-05-12T00:49:51.000Z",5.3,{}],["2016-05-12T00:50:21.000Z",5.5,{}],["2016-05-12T00:50:51.000Z",7.1,{}],["2016-05-12T00:51:21.000Z",8.2,{}],["2016-05-12T00:51:51.000Z",5.2,{}],["2016-05-12T00:52:21.000Z",8.3,{}],["2016-05-12T00:52:51.000Z",7.0,{}],["2016-05-12T00:53:21.000Z",6.7,{}],["2016-05-12T00:53:51.000Z",7.7,{}],["2016-05-12T00:54:21.000Z",6.5,{}],["2016-05-12T00:54:51.000Z",6.6,{}],["2016-05-12T00:55:22.000Z",5.0,{}],["2016-05-12T00:55:52.000Z",6.199999999999999,{}],["2016-05-12T00:56:22.000Z",7.8,{}],["2016-05-12T00:56:52.000Z",5.9,{}],["2016-05-12T00:57:22.000Z",6.699999999999999,{}],["2016-05-12T00:57:52.000Z",7.2,{}],["2016-05-12T00:58:22.000Z",6.5,{}],["2016-05-12T00:58:52.000Z",4.3999999999999995,{}],["2016-05-12T00:59:22.000Z",7.1,{}],["2016-05-12T00:59:52.000Z",7.3,{}],["2016-05-12T01:00:22.000Z",4.9,{}],["2016-05-12T01:00:52.000Z",4.9,{}],["2016-05-12T01:01:22.000Z",7.2,{}],["2016-05-12T01:01:52.000Z",5.7,{}],["2016-05-12T01:02:22.000Z",6.5,{}],["2016-05-12T01:02:52.000Z",6.9,{}],["2016-05-12T01:03:22.000Z",7.1,{}],["2016-05-12T01:03:52.000Z",6.6,{}],["2016-05-12T01:04:22.000Z",6.0,{}],["2016-05-12T01:04:52.000Z",7.6,{}],["2016-05-12T01:05:22.000Z",7.6,{}],["2016-05-12T01:05:52.000Z",5.699999999999999,{}],["2016-05-12T01:06:22.000Z",5.2,{}],["2016-05-12T01:06:52.000Z",6.3,{}],["2016-05-12T01:07:22.000Z",6.2,{}],["2016-05-12T01:07:52.000Z",7.2,{}],["2016-05-12T01:08:22.000Z",7.0,{}],["2016-05-12T01:08:52.000Z",4.8,{}],["2016-05-12T01:09:22.000Z",6.5,{}],["2016-05-12T01:09:52.000Z",5.5,{}],["2016-05-12T01:10:22.000Z",6.5,{}],["2016-05-12T01:10:52.000Z",5.8,{}],["2016-05-12T01:11:22.000Z",7.3999999999999995,{}],["2016-05-12T01:11:52.000Z",6.3,{}],["2016-05-12T01:12:22.000Z",7.1,{}],["2016-05-12T01:12:52.000Z",5.6,{}],["2016-05-12T01:13:22.000Z",6.8,{}],["2016-05-12T01:13:52.000Z",7.6,{}],["2016-05-12T01:14:22.000Z",6.4,{}],["2016-05-12T01:14:52.000Z",6.0,{}],["2016-05-12T01:15:22.000Z",9.2,{}],["2016-05-12T01:15:52.000Z",6.4,{}],["2016-05-12T01:16:22.000Z",6.9,{}],["2016-05-12T01:16:53.000Z",6.7,{}],["2016-05-12T01:17:23.000Z",4.8999999999999995,{}],["2016-05-12T01:17:53.000Z",8.5,{}],["2016-05-12T01:18:23.000Z",5.9,{}],["2016-05-12T01:18:53.000Z",6.9,{}],["2016-05-12T01:19:23.000Z",7.0,{}],["2016-05-12T01:19:53.000Z",7.4,{}],["2016-05-12T01:20:23.000Z",6.0,{}],["2016-05-12T01:20:53.000Z",7.199999999999999,{}],["2016-05-12T01:21:23.000Z",8.3,{}],["2016-05-12T01:21:53.000Z",6.1,{}],["2016-05-12T01:22:23.000Z",7.4,{}],["2016-05-12T01:22:53.000Z",5.3,{}],["2016-05-12T01:23:23.000Z",6.5,{}],["2016-05-12T01:23:53.000Z",5.8,{}],["2016-05-12T01:24:23.000Z",7.8,{}],["2016-05-12T01:24:53.000Z",5.8,{}],["2016-05-12T01:25:23.000Z",6.8,{}],["2016-05-12T01:25:53.000Z",6.3,{}],["2016-05-12T01:26:23.000Z",6.3,{}],["2016-05-12T01:26:53.000Z",6.3999999999999995,{}],["2016-05-12T01:27:23.000Z",6.2,{}],["2016-05-12T01:27:53.000Z",5.9,{}],["2016-05-12T01:28:23.000Z",3.5,{}],["2016-05-12T01:28:53.000Z",6.8999999999999995,{}],["2016-05-12T01:29:23.000Z",6.6,{}],["2016-05-12T01:29:53.000Z",7.5,{}],["2016-05-12T01:30:23.000Z",7.9,{}],["2016-05-12T01:30:53.000Z",6.8999999999999995,{}],["2016-05-12T01:31:23.000Z",6.8,{}],["2016-05-12T01:31:53.000Z",8.1,{}],["2016-05-12T01:32:23.000Z",6.9,{}],["2016-05-12T01:32:53.000Z",6.0,{}],["2016-05-12T01:33:23.000Z",8.2,{}],["2016-05-12T01:33:53.000Z",6.3,{}],["2016-05-12T01:34:23.000Z",5.6,{}],["2016-05-12T01:34:53.000Z",9.2,{}],["2016-05-12T01:35:23.000Z",7.7,{}],["2016-05-12T01:35:53.000Z",7.199999999999999,{}],["2016-05-12T01:36:23.000Z",6.5,{}],["2016-05-12T01:36:53.000Z",8.3,{}],["2016-05-12T01:37:23.000Z",7.4,{}],["2016-05-12T01:37:53.000Z",6.1,{}],["2016-05-12T01:38:23.000Z",7.8,{}],["2016-05-12T01:38:53.000Z",8.1,{}],["2016-05-12T01:39:24.000Z",5.199999999999999,{}],["2016-05-12T01:39:54.000Z",6.1,{}],["2016-05-12T01:40:24.000Z",7.6,{}],["2016-05-12T01:40:54.000Z",6.8999999999999995,{}],["2016-05-12T01:41:24.000Z",7.5,{}],["2016-05-12T01:41:54.000Z",5.7,{}],["2016-05-12T01:42:24.000Z",7.9,{}],["2016-05-12T01:42:54.000Z",7.3,{}],["2016-05-12T01:43:24.000Z",6.7,{}],["2016-05-12T01:43:54.000Z",5.6,{}],["2016-05-12T01:44:24.000Z",7.5,{}],["2016-05-12T01:44:54.000Z",5.9,{}],["2016-05-12T01:45:24.000Z",5.6,{}],["2016-05-12T01:45:54.000Z",7.0,{}],["2016-05-12T01:46:24.000Z",6.1,{}],["2016-05-12T01:46:54.000Z",6.8,{}],["2016-05-12T01:47:24.000Z",6.7,{}],["2016-05-12T01:47:54.000Z",7.6,{}],["2016-05-12T01:48:24.000Z",6.9,{}],["2016-05-12T01:48:54.000Z",6.7,{}],["2016-05-12T01:49:24.000Z",7.199999999999999,{}],["2016-05-12T01:49:54.000Z",4.8,{}],["2016-05-12T01:50:24.000Z",5.2,{}],["2016-05-12T01:50:54.000Z",7.0,{}],["2016-05-12T01:51:24.000Z",5.0,{}],["2016-05-12T01:51:54.000Z",8.3,{}],["2016-05-12T01:52:24.000Z",6.8,{}],["2016-05-12T01:52:54.000Z",8.9,{}],["2016-05-12T01:53:24.000Z",6.6,{}],["2016-05-12T01:53:54.000Z",7.9,{}],["2016-05-12T01:54:24.000Z",6.6,{}],["2016-05-12T01:54:54.000Z",7.8,{}],["2016-05-12T01:55:24.000Z",6.2,{}],["2016-05-12T01:55:54.000Z",9.0,{}],["2016-05-12T01:56:24.000Z",5.1,{}],["2016-05-12T01:56:54.000Z",5.1,{}],["2016-05-12T01:57:24.000Z",8.7,{}],["2016-05-12T01:57:54.000Z",6.8,{}],["2016-05-12T01:58:24.000Z",8.4,{}],["2016-05-12T01:58:54.000Z",5.8999999999999995,{}],["2016-05-12T01:59:24.000Z",7.3,{}],["2016-05-12T01:59:54.000Z",7.5,{}],["2016-05-12T02:00:24.000Z",6.4,{}],["2016-05-12T02:00:54.000Z",6.7,{}],["2016-05-12T02:01:24.000Z",5.7,{}],["2016-05-12T02:01:55.000Z",4.1,{}],["2016-05-12T02:02:25.000Z",7.3,{}],["2016-05-12T02:02:55.000Z",6.6,{}],["2016-05-12T02:03:25.000Z",7.3,{}],["2016-05-12T02:03:55.000Z",7.0,{}],["2016-05-12T02:04:25.000Z",6.6,{}],["2016-05-12T02:04:55.000Z",7.2,{}],["2016-05-12T02:05:25.000Z",6.7,{}],["2016-05-12T02:05:55.000Z",7.1,{}],["2016-05-12T02:06:25.000Z",5.199999999999999,{}],["2016-05-12T02:06:55.000Z",8.1,{}],["2016-05-12T02:07:25.000Z",5.5,{}],["2016-05-12T02:07:55.000Z",8.0,{}],["2016-05-12T02:08:25.000Z",5.6,{}],["2016-05-12T02:08:55.000Z",7.5,{}],["2016-05-12T02:09:25.000Z",9.0,{}],["2016-05-12T02:09:55.000Z",7.0,{}],["2016-05-12T02:10:25.000Z",5.9,{}],["2016-05-12T02:10:55.000Z",6.8999999999999995,{}],["2016-05-12T02:11:25.000Z",8.6,{}],["2016-05-12T02:11:55.000Z",7.7,{}],["2016-05-12T02:12:25.000Z",5.199999999999999,{}],["2016-05-12T02:12:55.000Z",4.9,{}],["2016-05-12T02:13:25.000Z",8.1,{}],["2016-05-12T02:13:55.000Z",7.6,{}],["2016-05-12T02:14:25.000Z",5.9,{}],["2016-05-12T02:14:55.000Z",6.9,{}],["2016-05-12T02:15:25.000Z",7.8,{}],["2016-05-12T02:15:55.000Z",6.7,{}],["2016-05-12T02:16:25.000Z",6.1,{}],["2016-05-12T02:16:55.000Z",6.5,{}],["2016-05-12T02:17:25.000Z",6.5,{}],["2016-05-12T02:17:55.000Z",5.3,{}],["2016-05-12T02:18:25.000Z",4.9,{}],["2016-05-12T02:18:55.000Z",7.5,{}],["2016-05-12T02:19:25.000Z",7.3,{}],["2016-05-12T02:19:55.000Z",6.9,{}],["2016-05-12T02:20:25.000Z",7.8,{}],["2016-05-12T02:20:55.000Z",6.0,{}],["2016-05-12T02:21:25.000Z",7.0,{}],["2016-05-12T02:21:55.000Z",8.8,{}],["2016-05-12T02:22:25.000Z",5.8999999999999995,{}],["2016-05-12T02:22:55.000Z",5.6,{}],["2016-05-12T02:23:25.000Z",7.9,{}],["2016-05-12T02:23:55.000Z",4.4,{}],["2016-05-12T02:24:25.000Z",6.699999999999999,{}],["2016-05-12T02:24:55.000Z",5.5,{}],["2016-05-12T02:25:25.000Z",6.9,{}],["2016-05-12T02:25:42.000Z",3.9,{}],["2016-05-12T02:25:56.000Z",7.6,{}],["2016-05-12T02:26:12.000Z",5.3,{}],["2016-05-12T02:26:26.000Z",6.8,{}],["2016-05-12T02:26:42.000Z",5.3,{}],["2016-05-12T02:26:56.000Z",7.1,{}],["2016-05-12T02:27:12.000Z",4.0,{}],["2016-05-12T02:27:26.000Z",7.3,{}],["2016-05-12T02:27:42.000Z",4.3,{}],["2016-05-12T02:27:56.000Z",5.2,{}],["2016-05-12T02:28:12.000Z",3.9,{}],["2016-05-12T02:28:26.000Z",6.7,{}],["2016-05-12T02:28:42.000Z",4.3,{}],["2016-05-12T02:28:56.000Z",8.9,{}],["2016-05-12T02:29:12.000Z",4.1,{}],["2016-05-12T02:29:26.000Z",4.9,{}],["2016-05-12T02:29:42.000Z",4.5,{}],["2016-05-12T02:29:56.000Z",7.1,{}],["2016-05-12T02:30:12.000Z",4.7,{}],["2016-05-12T02:30:26.000Z",5.6,{}],["2016-05-12T02:30:42.000Z",4.5,{}],["2016-05-12T02:30:56.000Z",9.299999999999999,{}],["2016-05-12T02:31:13.000Z",6.0,{}],["2016-05-12T02:31:26.000Z",6.9,{}],["2016-05-12T02:31:42.000Z",4.3,{}],["2016-05-12T02:31:56.000Z",5.0,{}],["2016-05-12T02:32:12.000Z",5.3,{}],["2016-05-12T02:32:26.000Z",6.9,{}],["2016-05-12T02:32:42.000Z",4.4,{}],["2016-05-12T02:32:56.000Z",7.1,{}],["2016-05-12T02:33:13.000Z",4.8,{}],["2016-05-12T02:33:26.000Z",7.3,{}],["2016-05-12T02:33:43.000Z",3.9,{}],["2016-05-12T02:33:56.000Z",6.5,{}],["2016-05-12T02:34:13.000Z",4.4,{}],["2016-05-12T02:34:26.000Z",6.0,{}],["2016-05-12T02:34:43.000Z",3.9,{}],["2016-05-12T02:34:56.000Z",5.0,{}],["2016-05-12T02:35:13.000Z",5.1,{}],["2016-05-12T02:35:26.000Z",7.199999999999999,{}],["2016-05-12T02:35:43.000Z",5.2,{}],["2016-05-12T02:35:56.000Z",5.3,{}],["2016-05-12T02:36:13.000Z",4.6,{}],["2016-05-12T02:36:26.000Z",8.1,{}],["2016-05-12T02:36:43.000Z",4.199999999999999,{}],["2016-05-12T02:36:56.000Z",6.3999999999999995,{}],["2016-05-12T02:37:13.000Z",4.2,{}],["2016-05-12T02:37:26.000Z",7.5,{}],["2016-05-12T02:37:43.000Z",4.0,{}],["2016-05-12T02:37:56.000Z",7.0,{}],["2016-05-12T02:38:13.000Z",4.3,{}],["2016-05-12T02:38:26.000Z",6.3,{}],["2016-05-12T02:38:43.000Z",3.7,{}],["2016-05-12T02:38:56.000Z",7.7,{}],["2016-05-12T02:39:13.000Z",4.4,{}],["2016-05-12T02:39:26.000Z",6.6,{}],["2016-05-12T02:39:43.000Z",3.8000000000000003,{}],["2016-05-12T02:39:56.000Z",4.3999999999999995,{}],["2016-05-12T02:40:13.000Z",4.0,{}],["2016-05-12T02:40:26.000Z",5.0,{}],["2016-05-12T02:40:43.000Z",4.5,{}],["2016-05-12T02:40:56.000Z",8.9,{}],["2016-05-12T02:41:13.000Z",5.5,{}],["2016-05-12T02:41:26.000Z",6.8,{}],["2016-05-12T02:41:43.000Z",3.9,{}],["2016-05-12T02:41:56.000Z",7.0,{}],["2016-05-12T02:42:13.000Z",4.4,{}],["2016-05-12T02:42:26.000Z",5.9,{}],["2016-05-12T02:42:43.000Z",4.1,{}],["2016-05-12T02:42:56.000Z",7.8,{}],["2016-05-12T02:43:13.000Z",5.1,{}],["2016-05-12T02:43:26.000Z",6.5,{}],["2016-05-12T02:43:43.000Z",4.6,{}],["2016-05-12T02:43:56.000Z",6.7,{}],["2016-05-12T02:44:13.000Z",4.2,{}],["2016-05-12T02:44:26.000Z",6.1,{}],["2016-05-12T02:44:43.000Z",3.7,{}],["2016-05-12T02:44:56.000Z",8.5,{}],["2016-05-12T02:45:13.000Z",4.5,{}],["2016-05-12T02:45:26.000Z",4.5,{}],["2016-05-12T02:45:43.000Z",5.1,{}],["2016-05-12T02:45:56.000Z",4.3999999999999995,{}],["2016-05-12T02:46:13.000Z",4.6,{}],["2016-05-12T02:46:26.000Z",6.2,{}],["2016-05-12T02:46:43.000Z",3.9,{}],["2016-05-12T02:46:56.000Z",8.0,{}],["2016-05-12T02:47:13.000Z",4.5,{}],["2016-05-12T02:47:26.000Z",5.0,{}],["2016-05-12T02:47:43.000Z",3.9,{}],["2016-05-12T02:47:56.000Z",7.1,{}],["2016-05-12T02:48:13.000Z",4.9,{}],["2016-05-12T02:48:26.000Z",7.1,{}],["2016-05-12T02:48:43.000Z",4.3,{}],["2016-05-12T02:48:56.000Z",7.6,{}],["2016-05-12T02:49:13.000Z",4.1,{}],["2016-05-12T02:49:26.000Z",6.4,{}],["2016-05-12T02:49:43.000Z",3.8,{}],["2016-05-12T02:49:56.000Z",5.0,{}],["2016-05-12T02:50:14.000Z",3.8,{}],["2016-05-12T02:50:26.000Z",7.6,{}],["2016-05-12T02:50:44.000Z",4.199999999999999,{}],["2016-05-12T02:50:56.000Z",8.9,{}],["2016-05-12T02:51:13.000Z",5.2,{}],["2016-05-12T02:51:26.000Z",4.1,{}],["2016-05-12T02:51:43.000Z",5.4,{}],["2016-05-12T02:51:56.000Z",5.3,{}],["2016-05-12T02:52:13.000Z",4.699999999999999,{}],["2016-05-12T02:52:27.000Z",6.9,{}],["2016-05-12T02:52:43.000Z",3.9,{}],["2016-05-12T02:52:57.000Z",8.1,{}],["2016-05-12T02:53:13.000Z",4.8,{}],["2016-05-12T02:53:27.000Z",6.8,{}],["2016-05-12T02:53:43.000Z",4.3999999999999995,{}],["2016-05-12T02:53:57.000Z",5.199999999999999,{}],["2016-05-12T02:54:13.000Z",4.3,{}],["2016-05-12T02:54:27.000Z",7.5,{}],["2016-05-12T02:54:43.000Z",4.2,{}],["2016-05-12T02:54:57.000Z",7.4,{}],["2016-05-12T02:55:13.000Z",4.9,{}],["2016-05-12T02:55:27.000Z",6.6,{}],["2016-05-12T02:55:43.000Z",3.7,{}],["2016-05-12T02:55:57.000Z",6.699999999999999,{}],["2016-05-12T02:56:13.000Z",4.3999999999999995,{}],["2016-05-12T02:56:27.000Z",5.0,{}],["2016-05-12T02:56:43.000Z",4.1,{}],["2016-05-12T02:56:57.000Z",5.6,{}],["2016-05-12T02:57:13.000Z",4.0,{}],["2016-05-12T02:57:27.000Z",7.1,{}],["2016-05-12T02:57:44.000Z",4.3999999999999995,{}],["2016-05-12T02:57:57.000Z",6.8,{}],["2016-05-12T02:58:14.000Z",3.9,{}],["2016-05-12T02:58:27.000Z",6.5,{}],["2016-05-12T02:58:44.000Z",4.6,{}],["2016-05-12T02:58:57.000Z",7.4,{}],["2016-05-12T02:59:14.000Z",3.9,{}],["2016-05-12T02:59:27.000Z",7.5,{}],["2016-05-12T02:59:44.000Z",4.5,{}],["2016-05-12T02:59:57.000Z",7.6,{}],["2016-05-12T03:00:14.000Z",4.1,{}],["2016-05-12T03:00:27.000Z",7.1,{}],["2016-05-12T03:00:44.000Z",3.7,{}],["2016-05-12T03:00:57.000Z",6.2,{}],["2016-05-12T03:01:14.000Z",4.8,{}],["2016-05-12T03:01:27.000Z",7.1,{}],["2016-05-12T03:01:44.000Z",3.9,{}],["2016-05-12T03:01:57.000Z",8.1,{}],["2016-05-12T03:02:14.000Z",4.6,{}],["2016-05-12T03:02:27.000Z",4.4,{}],["2016-05-12T03:02:44.000Z",4.1,{}],["2016-05-12T03:02:57.000Z",5.9,{}],["2016-05-12T03:03:14.000Z",4.3,{}],["2016-05-12T03:03:27.000Z",6.5,{}],["2016-05-12T03:03:44.000Z",4.4,{}],["2016-05-12T03:03:57.000Z",6.9,{}],["2016-05-12T03:04:14.000Z",4.4,{}],["2016-05-12T03:04:27.000Z",7.2,{}],["2016-05-12T03:04:44.000Z",3.7,{}],["2016-05-12T03:04:57.000Z",4.8999999999999995,{}],["2016-05-12T03:05:14.000Z",3.8000000000000003,{}],["2016-05-12T03:05:27.000Z",6.9,{}],["2016-05-12T03:05:44.000Z",3.7,{}],["2016-05-12T03:05:57.000Z",8.2,{}],["2016-05-12T03:06:14.000Z",4.0,{}],["2016-05-12T03:06:27.000Z",7.3,{}],["2016-05-12T03:06:45.000Z",4.8,{}],["2016-05-12T03:06:57.000Z",6.7,{}],["2016-05-12T03:07:14.000Z",4.0,{}],["2016-05-12T03:07:27.000Z",5.7,{}],["2016-05-12T03:07:44.000Z",5.3999999999999995,{}],["2016-05-12T03:07:57.000Z",4.4,{}],["2016-05-12T03:08:14.000Z",4.5,{}],["2016-05-12T03:08:27.000Z",6.699999999999999,{}],["2016-05-12T03:08:44.000Z",4.0,{}],["2016-05-12T03:08:57.000Z",7.1,{}],["2016-05-12T03:09:14.000Z",5.1,{}],["2016-05-12T03:09:27.000Z",5.5,{}],["2016-05-12T03:09:45.000Z",4.0,{}],["2016-05-12T03:09:57.000Z",6.5,{}],["2016-05-12T03:10:14.000Z",4.5,{}],["2016-05-12T03:10:27.000Z",6.7,{}],["2016-05-12T03:10:44.000Z",4.3,{}],["2016-05-12T03:10:57.000Z",7.5,{}],["2016-05-12T03:11:14.000Z",4.5,{}],["2016-05-12T03:11:27.000Z",7.3,{}],["2016-05-12T03:11:44.000Z",3.6,{}],["2016-05-12T03:11:57.000Z",6.7,{}],["2016-05-12T03:12:14.000Z",4.3999999999999995,{}],["2016-05-12T03:12:27.000Z",7.1,{}],["2016-05-12T03:12:44.000Z",4.4,{}],["2016-05-12T03:12:57.000Z",5.5,{}],["2016-05-12T03:13:14.000Z",3.9,{}],["2016-05-12T03:13:27.000Z",5.2,{}],["2016-05-12T03:13:44.000Z",3.9,{}],["2016-05-12T03:13:57.000Z",7.0,{}],["2016-05-12T03:14:15.000Z",4.1,{}],["2016-05-12T03:14:27.000Z",6.0,{}],["2016-05-12T03:14:44.000Z",4.3,{}],["2016-05-12T03:14:57.000Z",5.5,{}],["2016-05-12T03:15:14.000Z",3.9,{}],["2016-05-12T03:15:27.000Z",7.4,{}],["2016-05-12T03:15:44.000Z",4.3,{}],["2016-05-12T03:15:58.000Z",5.8,{}],["2016-05-12T03:16:14.000Z",3.9,{}],["2016-05-12T03:16:28.000Z",7.4,{}],["2016-05-12T03:16:45.000Z",4.0,{}],["2016-05-12T03:16:58.000Z",6.0,{}],["2016-05-12T03:17:14.000Z",4.1,{}],["2016-05-12T03:17:28.000Z",6.0,{}],["2016-05-12T03:17:44.000Z",4.1,{}],["2016-05-12T03:17:58.000Z",8.299999999999999,{}],["2016-05-12T03:18:15.000Z",4.1,{}],["2016-05-12T03:18:28.000Z",4.6,{}],["2016-05-12T03:18:44.000Z",4.8,{}],["2016-05-12T03:18:58.000Z",5.3,{}],["2016-05-12T03:19:15.000Z",4.6,{}],["2016-05-12T03:19:28.000Z",6.5,{}],["2016-05-12T03:19:45.000Z",4.5,{}],["2016-05-12T03:19:58.000Z",5.8,{}],["2016-05-12T03:20:15.000Z",4.5,{}],["2016-05-12T03:20:28.000Z",7.1,{}],["2016-05-12T03:20:45.000Z",3.8,{}],["2016-05-12T03:20:58.000Z",6.5,{}],["2016-05-12T03:21:15.000Z",4.9,{}],["2016-05-12T03:21:28.000Z",6.4,{}],["2016-05-12T03:21:45.000Z",4.199999999999999,{}],["2016-05-12T03:21:58.000Z",5.2,{}],["2016-05-12T03:22:15.000Z",4.6,{}],["2016-05-12T03:22:28.000Z",7.1,{}],["2016-05-12T03:22:45.000Z",3.8,{}],["2016-05-12T03:22:58.000Z",6.3,{}],["2016-05-12T03:23:15.000Z",4.6,{}],["2016-05-12T03:23:28.000Z",6.8,{}],["2016-05-12T03:23:45.000Z",3.9,{}],["2016-05-12T03:23:58.000Z",5.4,{}],["2016-05-12T03:24:16.000Z",4.6,{}],["2016-05-12T03:24:28.000Z",4.8,{}],["2016-05-12T03:24:45.000Z",3.7,{}],["2016-05-12T03:24:58.000Z",7.1,{}],["2016-05-12T03:25:15.000Z",5.2,{}],["2016-05-12T03:25:28.000Z",7.4,{}],["2016-05-12T03:25:45.000Z",3.7,{}],["2016-05-12T03:25:58.000Z",6.9,{}],["2016-05-12T03:26:15.000Z",4.8,{}],["2016-05-12T03:26:28.000Z",6.3999999999999995,{}],["2016-05-12T03:26:45.000Z",3.7,{}],["2016-05-12T03:26:58.000Z",5.7,{}],["2016-05-12T03:27:15.000Z",4.4,{}],["2016-05-12T03:27:28.000Z",8.6,{}],["2016-05-12T03:27:45.000Z",5.3,{}],["2016-05-12T03:27:58.000Z",7.0,{}],["2016-05-12T03:28:15.000Z",4.2,{}],["2016-05-12T03:28:28.000Z",6.6,{}],["2016-05-12T03:28:46.000Z",4.8,{}],["2016-05-12T03:28:58.000Z",7.2,{}],["2016-05-12T03:29:16.000Z",4.199999999999999,{}],["2016-05-12T03:29:28.000Z",5.4,{}],["2016-05-12T03:29:45.000Z",3.9,{}],["2016-05-12T03:29:58.000Z",4.3999999999999995,{}],["2016-05-12T03:30:15.000Z",4.0,{}],["2016-05-12T03:30:28.000Z",7.3,{}],["2016-05-12T03:30:45.000Z",4.3,{}],["2016-05-12T03:30:58.000Z",7.2,{}],["2016-05-12T03:31:15.000Z",3.9,{}],["2016-05-12T03:31:28.000Z",4.8,{}],["2016-05-12T03:31:46.000Z",4.3,{}],["2016-05-12T03:31:58.000Z",7.2,{}],["2016-05-12T03:32:15.000Z",3.8,{}],["2016-05-12T03:32:28.000Z",6.8,{}],["2016-05-12T03:32:45.000Z",4.6,{}],["2016-05-12T03:32:58.000Z",7.3,{}],["2016-05-12T03:33:15.000Z",4.4,{}],["2016-05-12T03:33:28.000Z",6.6,{}],["2016-05-12T03:33:45.000Z",4.7,{}],["2016-05-12T03:33:58.000Z",5.0,{}],["2016-05-12T03:34:15.000Z",5.5,{}],["2016-05-12T03:34:28.000Z",6.6,{}],["2016-05-12T03:34:45.000Z",4.3,{}],["2016-05-12T03:34:58.000Z",6.6,{}],["2016-05-12T03:35:15.000Z",4.8,{}],["2016-05-12T03:35:28.000Z",6.8,{}],["2016-05-12T03:35:45.000Z",4.0,{}],["2016-05-12T03:35:58.000Z",6.2,{}],["2016-05-12T03:36:15.000Z",4.6,{}],["2016-05-12T03:36:28.000Z",6.3,{}],["2016-05-12T03:36:45.000Z",4.1,{}],["2016-05-12T03:36:58.000Z",5.8,{}],["2016-05-12T03:37:15.000Z",4.199999999999999,{}],["2016-05-12T03:37:28.000Z",6.9,{}],["2016-05-12T03:37:45.000Z",3.9,{}],["2016-05-12T03:37:58.000Z",7.6,{}],["2016-05-12T03:38:15.000Z",5.0,{}],["2016-05-12T03:38:28.000Z",7.1,{}],["2016-05-12T03:38:45.000Z",5.4,{}],["2016-05-12T03:38:58.000Z",7.4,{}],["2016-05-12T03:39:15.000Z",5.1,{}],["2016-05-12T03:39:28.000Z",5.7,{}],["2016-05-12T03:39:45.000Z",5.1,{}],["2016-05-12T03:39:58.000Z",6.9,{}],["2016-05-12T03:40:15.000Z",4.9,{}],["2016-05-12T03:40:28.000Z",4.4,{}],["2016-05-12T03:40:46.000Z",4.5,{}],["2016-05-12T03:40:58.000Z",8.6,{}],["2016-05-12T03:41:15.000Z",3.8,{}],["2016-05-12T03:41:28.000Z",5.6,{}],["2016-05-12T03:41:45.000Z",5.3,{}],["2016-05-12T03:41:59.000Z",7.2,{}],["2016-05-12T03:42:15.000Z",5.3,{}],["2016-05-12T03:42:29.000Z",6.5,{}],["2016-05-12T03:42:45.000Z",4.0,{}],["2016-05-12T03:42:59.000Z",7.699999999999999,{}],["2016-05-12T03:43:16.000Z",4.4,{}],["2016-05-12T03:43:29.000Z",6.9,{}],["2016-05-12T03:43:46.000Z",3.7,{}],["2016-05-12T03:43:59.000Z",5.6,{}],["2016-05-12T03:44:16.000Z",4.1,{}],["2016-05-12T03:44:29.000Z",5.4,{}],["2016-05-12T03:44:46.000Z",3.7,{}],["2016-05-12T03:44:59.000Z",6.8,{}],["2016-05-12T03:45:16.000Z",4.3,{}],["2016-05-12T03:45:29.000Z",6.4,{}],["2016-05-12T03:45:46.000Z",3.8000000000000003,{}],["2016-05-12T03:45:59.000Z",4.6,{}],["2016-05-12T03:46:16.000Z",3.9,{}],["2016-05-12T03:46:29.000Z",8.5,{}],["2016-05-12T03:46:46.000Z",6.2,{}],["2016-05-12T03:46:59.000Z",5.5,{}],["2016-05-12T03:47:17.000Z",4.4,{}],["2016-05-12T03:47:29.000Z",6.7,{}],["2016-05-12T03:47:46.000Z",4.1,{}],["2016-05-12T03:47:59.000Z",6.199999999999999,{}],["2016-05-12T03:48:16.000Z",4.7,{}],["2016-05-12T03:48:29.000Z",7.2,{}],["2016-05-12T03:48:46.000Z",3.7,{}],["2016-05-12T03:48:59.000Z",7.4,{}],["2016-05-12T03:49:16.000Z",4.8,{}],["2016-05-12T03:49:29.000Z",5.1,{}],["2016-05-12T03:49:46.000Z",4.0,{}],["2016-05-12T03:49:59.000Z",6.199999999999999,{}],["2016-05-12T03:50:16.000Z",4.4,{}],["2016-05-12T03:50:29.000Z",7.7,{}],["2016-05-12T03:50:46.000Z",3.7,{}],["2016-05-12T03:50:59.000Z",7.0,{}],["2016-05-12T03:51:16.000Z",4.6,{}],["2016-05-12T03:51:29.000Z",5.1,{}],["2016-05-12T03:51:47.000Z",3.7,{}],["2016-05-12T03:51:59.000Z",6.2,{}],["2016-05-12T03:52:16.000Z",4.2,{}],["2016-05-12T03:52:29.000Z",5.6,{}],["2016-05-12T03:52:46.000Z",4.2,{}],["2016-05-12T03:52:59.000Z",7.3999999999999995,{}],["2016-05-12T03:53:16.000Z",4.199999999999999,{}],["2016-05-12T03:53:29.000Z",7.6,{}],["2016-05-12T03:53:46.000Z",3.8,{}],["2016-05-12T03:53:59.000Z",6.7,{}],["2016-05-12T03:54:16.000Z",4.5,{}],["2016-05-12T03:54:29.000Z",6.8,{}],["2016-05-12T03:54:46.000Z",3.8000000000000003,{}],["2016-05-12T03:54:59.000Z",6.0,{}],["2016-05-12T03:55:16.000Z",4.6,{}],["2016-05-12T03:55:29.000Z",5.4,{}],["2016-05-12T03:55:46.000Z",3.7,{}],["2016-05-12T03:55:59.000Z",5.8,{}],["2016-05-12T03:56:16.000Z",4.9,{}],["2016-05-12T03:56:29.000Z",6.6,{}],["2016-05-12T03:56:46.000Z",3.7,{}],["2016-05-12T03:56:59.000Z",5.0,{}],["2016-05-12T03:57:16.000Z",4.8999999999999995,{}],["2016-05-12T03:57:29.000Z",6.3,{}],["2016-05-12T03:57:47.000Z",4.0,{}],["2016-05-12T03:57:59.000Z",5.6,{}],["2016-05-12T03:58:16.000Z",4.3,{}],["2016-05-12T03:58:29.000Z",7.6,{}],["2016-05-12T03:58:46.000Z",3.8,{}],["2016-05-12T03:58:59.000Z",7.3,{}],["2016-05-12T03:59:16.000Z",4.0,{}],["2016-05-12T03:59:29.000Z",6.9,{}],["2016-05-12T03:59:47.000Z",4.1,{}],["2016-05-12T03:59:59.000Z",6.699999999999999,{}],["2016-05-12T04:00:16.000Z",4.2,{}],["2016-05-12T04:00:29.000Z",6.4,{}],["2016-05-12T04:00:46.000Z",4.6,{}],["2016-05-12T04:00:59.000Z",7.2,{}],["2016-05-12T04:01:17.000Z",3.9,{}],["2016-05-12T04:01:29.000Z",7.2,{}],["2016-05-12T04:01:46.000Z",4.0,{}],["2016-05-12T04:01:59.000Z",6.3,{}],["2016-05-12T04:02:16.000Z",3.8,{}],["2016-05-12T04:02:29.000Z",4.8,{}],["2016-05-12T04:02:46.000Z",4.199999999999999,{}],["2016-05-12T04:02:59.000Z",4.7,{}],["2016-05-12T04:03:16.000Z",4.1,{}],["2016-05-12T04:03:29.000Z",6.3,{}],["2016-05-12T04:03:46.000Z",3.8,{}],["2016-05-12T04:04:00.000Z",6.3,{}],["2016-05-12T04:04:16.000Z",4.5,{}],["2016-05-12T04:04:29.000Z",7.0,{}],["2016-05-12T04:04:47.000Z",3.9,{}],["2016-05-12T04:05:00.000Z",6.0,{}],["2016-05-12T04:05:17.000Z",4.3,{}],["2016-05-12T04:05:30.000Z",5.4,{}],["2016-05-12T04:05:46.000Z",3.7,{}],["2016-05-12T04:06:00.000Z",6.9,{}],["2016-05-12T04:06:16.000Z",4.5,{}],["2016-05-12T04:06:30.000Z",7.1,{}],["2016-05-12T04:06:47.000Z",3.7,{}],["2016-05-12T04:07:00.000Z",6.3999999999999995,{}],["2016-05-12T04:07:16.000Z",3.9,{}],["2016-05-12T04:07:30.000Z",6.7,{}],["2016-05-12T04:07:46.000Z",4.2,{}],["2016-05-12T04:08:00.000Z",4.0,{}],["2016-05-12T04:08:16.000Z",4.6,{}],["2016-05-12T04:08:30.000Z",7.7,{}],["2016-05-12T04:08:47.000Z",4.0,{}],["2016-05-12T04:09:00.000Z",5.3,{}],["2016-05-12T04:09:17.000Z",4.0,{}],["2016-05-12T04:09:30.000Z",7.0,{}],["2016-05-12T04:09:47.000Z",4.1,{}],["2016-05-12T04:10:00.000Z",4.8999999999999995,{}],["2016-05-12T04:10:17.000Z",3.7,{}],["2016-05-12T04:10:30.000Z",6.9,{}],["2016-05-12T04:10:47.000Z",4.2,{}],["2016-05-12T04:11:00.000Z",7.0,{}],["2016-05-12T04:11:17.000Z",4.8,{}],["2016-05-12T04:11:30.000Z",6.1,{}],["2016-05-12T04:11:47.000Z",4.1,{}],["2016-05-12T04:12:00.000Z",5.6,{}],["2016-05-12T04:12:17.000Z",3.9,{}],["2016-05-12T04:12:30.000Z",6.8,{}],["2016-05-12T04:12:47.000Z",4.699999999999999,{}],["2016-05-12T04:13:00.000Z",6.3,{}],["2016-05-12T04:13:17.000Z",4.9,{}],["2016-05-12T04:13:30.000Z",4.6,{}],["2016-05-12T04:13:47.000Z",5.3,{}],["2016-05-12T04:14:00.000Z",6.6,{}],["2016-05-12T04:14:17.000Z",5.3999999999999995,{}],["2016-05-12T04:14:30.000Z",7.2,{}],["2016-05-12T04:14:47.000Z",3.7,{}],["2016-05-12T04:15:00.000Z",5.5,{}],["2016-05-12T04:15:18.000Z",3.9,{}],["2016-05-12T04:15:30.000Z",8.0,{}],["2016-05-12T04:15:47.000Z",4.7,{}],["2016-05-12T04:16:00.000Z",6.5,{}],["2016-05-12T04:16:17.000Z",4.8,{}],["2016-05-12T04:16:30.000Z",7.2,{}],["2016-05-12T04:16:47.000Z",4.6,{}],["2016-05-12T04:17:00.000Z",5.5,{}],["2016-05-12T04:17:17.000Z",3.8,{}],["2016-05-12T04:17:30.000Z",7.9,{}],["2016-05-12T04:17:47.000Z",4.3,{}],["2016-05-12T04:18:00.000Z",6.5,{}],["2016-05-12T04:18:17.000Z",5.5,{}],["2016-05-12T04:18:30.000Z",7.0,{}],["2016-05-12T04:18:47.000Z",3.7,{}],["2016-05-12T04:19:00.000Z",3.4,{}],["2016-05-12T04:19:17.000Z",4.0,{}],["2016-05-12T04:19:30.000Z",6.5,{}],["2016-05-12T04:19:47.000Z",5.0,{}],["2016-05-12T04:20:00.000Z",5.8999999999999995,{}],["2016-05-12T04:20:18.000Z",3.7,{}],["2016-05-12T04:20:30.000Z",8.0,{}],["2016-05-12T04:20:48.000Z",3.7,{}],["2016-05-12T04:21:00.000Z",6.2,{}],["2016-05-12T04:21:17.000Z",4.8,{}],["2016-05-12T04:21:30.000Z",7.5,{}],["2016-05-12T04:21:48.000Z",3.4,{}],["2016-05-12T04:22:00.000Z",6.5,{}],["2016-05-12T04:22:17.000Z",4.1,{}],["2016-05-12T04:22:30.000Z",7.0,{}],["2016-05-12T04:22:47.000Z",4.199999999999999,{}],["2016-05-12T04:23:00.000Z",6.5,{}],["2016-05-12T04:23:17.000Z",5.8,{}],["2016-05-12T04:23:30.000Z",5.5,{}],["2016-05-12T04:23:47.000Z",3.6,{}],["2016-05-12T04:24:00.000Z",6.1,{}],["2016-05-12T04:24:17.000Z",3.9,{}],["2016-05-12T04:24:30.000Z",6.5,{}],["2016-05-12T04:24:47.000Z",5.8,{}],["2016-05-12T04:25:00.000Z",5.4,{}],["2016-05-12T04:25:17.000Z",4.0,{}],["2016-05-12T04:25:30.000Z",7.0,{}],["2016-05-12T04:25:47.000Z",4.3999999999999995,{}],["2016-05-12T04:26:00.000Z",6.8,{}],["2016-05-12T04:26:17.000Z",4.699999999999999,{}],["2016-05-12T04:26:30.000Z",6.4,{}],["2016-05-12T04:26:47.000Z",3.7,{}],["2016-05-12T04:27:00.000Z",6.1,{}],["2016-05-12T04:27:17.000Z",5.8,{}],["2016-05-12T04:27:30.000Z",4.9,{}],["2016-05-12T04:27:47.000Z",3.7,{}],["2016-05-12T04:28:01.000Z",7.9,{}],["2016-05-12T04:28:17.000Z",4.4,{}],["2016-05-12T04:28:31.000Z",6.0,{}],["2016-05-12T04:28:47.000Z",3.9,{}],["2016-05-12T04:29:01.000Z",7.3,{}],["2016-05-12T04:29:18.000Z",4.5,{}],["2016-05-12T04:29:31.000Z",5.7,{}],["2016-05-12T04:29:47.000Z",4.1,{}],["2016-05-12T04:30:01.000Z",4.8999999999999995,{}],["2016-05-12T04:30:17.000Z",5.7,{}],["2016-05-12T04:30:31.000Z",6.9,{}],["2016-05-12T04:30:47.000Z",4.3,{}],["2016-05-12T04:31:01.000Z",6.5,{}],["2016-05-12T04:31:18.000Z",4.0,{}],["2016-05-12T04:31:31.000Z",6.3999999999999995,{}],["2016-05-12T04:31:48.000Z",4.8,{}],["2016-05-12T04:32:01.000Z",5.8,{}],["2016-05-12T04:32:17.000Z",4.199999999999999,{}],["2016-05-12T04:32:31.000Z",5.4,{}],["2016-05-12T04:32:47.000Z",4.3,{}],["2016-05-12T04:33:01.000Z",7.9,{}],["2016-05-12T04:33:17.000Z",4.8,{}],["2016-05-12T04:33:31.000Z",6.6,{}],["2016-05-12T04:33:47.000Z",3.7,{}],["2016-05-12T04:34:01.000Z",6.6,{}],["2016-05-12T04:34:18.000Z",5.3,{}],["2016-05-12T04:34:31.000Z",5.5,{}],["2016-05-12T04:34:47.000Z",3.7,{}],["2016-05-12T04:35:01.000Z",6.199999999999999,{}],["2016-05-12T04:35:17.000Z",3.7,{}],["2016-05-12T04:35:31.000Z",4.5,{}],["2016-05-12T04:35:47.000Z",5.0,{}],["2016-05-12T04:36:01.000Z",6.9,{}],["2016-05-12T04:36:17.000Z",4.8999999999999995,{}],["2016-05-12T04:36:31.000Z",5.8,{}],["2016-05-12T04:36:48.000Z",3.9,{}],["2016-05-12T04:37:01.000Z",6.5,{}],["2016-05-12T04:37:18.000Z",4.7,{}],["2016-05-12T04:37:31.000Z",6.7,{}],["2016-05-12T04:37:48.000Z",4.3,{}],["2016-05-12T04:38:01.000Z",6.4,{}],["2016-05-12T04:38:18.000Z",4.8,{}],["2016-05-12T04:38:31.000Z",5.9,{}],["2016-05-12T04:38:48.000Z",5.0,{}],["2016-05-12T04:39:01.000Z",5.8,{}],["2016-05-12T04:39:18.000Z",4.8,{}],["2016-05-12T04:39:31.000Z",6.4,{}],["2016-05-12T04:39:48.000Z",4.5,{}],["2016-05-12T04:40:01.000Z",6.1,{}],["2016-05-12T04:40:18.000Z",4.3,{}],["2016-05-12T04:40:31.000Z",7.7,{}],["2016-05-12T04:40:48.000Z",4.4,{}],["2016-05-12T04:41:01.000Z",5.0,{}],["2016-05-12T04:41:18.000Z",4.699999999999999,{}],["2016-05-12T04:41:31.000Z",5.8999999999999995,{}],["2016-05-12T04:41:48.000Z",4.7,{}],["2016-05-12T04:42:01.000Z",6.9,{}],["2016-05-12T04:42:18.000Z",4.4,{}],["2016-05-12T04:42:31.000Z",6.9,{}],["2016-05-12T04:42:48.000Z",4.199999999999999,{}],["2016-05-12T04:43:01.000Z",5.3,{}],["2016-05-12T04:43:18.000Z",4.7,{}],["2016-05-12T04:43:31.000Z",6.3999999999999995,{}],["2016-05-12T04:43:48.000Z",4.3,{}],["2016-05-12T04:44:01.000Z",6.9,{}],["2016-05-12T04:44:18.000Z",4.8,{}],["2016-05-12T04:44:31.000Z",6.8,{}],["2016-05-12T04:44:49.000Z",3.9,{}],["2016-05-12T04:45:01.000Z",7.0,{}],["2016-05-12T04:45:18.000Z",4.0,{}],["2016-05-12T04:45:31.000Z",6.1,{}],["2016-05-12T04:45:48.000Z",5.0,{}],["2016-05-12T04:46:01.000Z",6.5,{}],["2016-05-12T04:46:18.000Z",4.4,{}],["2016-05-12T04:46:31.000Z",5.6,{}],["2016-05-12T04:46:48.000Z",3.9,{}],["2016-05-12T04:47:01.000Z",6.1,{}],["2016-05-12T04:47:18.000Z",4.3999999999999995,{}],["2016-05-12T04:47:31.000Z",6.8999999999999995,{}],["2016-05-12T04:47:48.000Z",4.5,{}],["2016-05-12T04:48:01.000Z",4.8,{}],["2016-05-12T04:48:18.000Z",3.9,{}],["2016-05-12T04:48:31.000Z",7.7,{}],["2016-05-12T04:48:48.000Z",4.3,{}],["2016-05-12T04:49:01.000Z",6.699999999999999,{}],["2016-05-12T04:49:18.000Z",4.0,{}],["2016-05-12T04:49:31.000Z",6.5,{}],["2016-05-12T04:49:50.000Z",4.4,{}],["2016-05-12T04:50:01.000Z",6.3,{}],["2016-05-12T04:50:18.000Z",3.9,{}],["2016-05-12T04:50:31.000Z",5.5,{}],["2016-05-12T04:50:48.000Z",3.6,{}],["2016-05-12T04:51:01.000Z",7.8999999999999995,{}],["2016-05-12T04:51:18.000Z",4.8,{}],["2016-05-12T04:51:31.000Z",7.2,{}],["2016-05-12T04:51:48.000Z",4.1,{}],["2016-05-12T04:52:01.000Z",3.6,{}],["2016-05-12T04:52:20.000Z",4.2,{}],["2016-05-12T04:52:32.000Z",5.5,{}],["2016-05-12T04:52:48.000Z",3.6,{}],["2016-05-12T04:53:02.000Z",6.6,{}],["2016-05-12T04:53:19.000Z",4.0,{}],["2016-05-12T04:53:32.000Z",7.2,{}],["2016-05-12T04:53:49.000Z",4.5,{}],["2016-05-12T04:54:02.000Z",6.8,{}],["2016-05-12T04:54:18.000Z",4.2,{}],["2016-05-12T04:54:32.000Z",4.8999999999999995,{}],["2016-05-12T04:54:49.000Z",4.1,{}],["2016-05-12T04:55:02.000Z",8.2,{}],["2016-05-12T04:55:18.000Z",4.3,{}],["2016-05-12T04:55:32.000Z",6.9,{}],["2016-05-12T04:55:48.000Z",4.8,{}],["2016-05-12T04:56:02.000Z",6.3999999999999995,{}],["2016-05-12T04:56:18.000Z",4.4,{}],["2016-05-12T04:56:32.000Z",6.4,{}],["2016-05-12T04:56:48.000Z",4.3,{}],["2016-05-12T04:57:02.000Z",6.4,{}],["2016-05-12T04:57:19.000Z",3.9,{}],["2016-05-12T04:57:32.000Z",5.0,{}],["2016-05-12T04:57:48.000Z",4.3,{}],["2016-05-12T04:58:02.000Z",7.0,{}],["2016-05-12T04:58:19.000Z",4.3,{}],["2016-05-12T04:58:32.000Z",7.3,{}],["2016-05-12T04:58:49.000Z",3.9,{}],["2016-05-12T04:59:02.000Z",6.6,{}],["2016-05-12T04:59:19.000Z",4.1,{}],["2016-05-12T04:59:32.000Z",6.1,{}],["2016-05-12T04:59:49.000Z",4.1,{}],["2016-05-12T05:00:02.000Z",6.5,{}],["2016-05-12T05:00:19.000Z",4.0,{}],["2016-05-12T05:00:32.000Z",5.8,{}],["2016-05-12T05:00:49.000Z",3.9,{}],["2016-05-12T05:01:02.000Z",8.1,{}],["2016-05-12T05:01:19.000Z",4.5,{}],["2016-05-12T05:01:32.000Z",6.8,{}],["2016-05-12T05:01:50.000Z",3.6,{}],["2016-05-12T05:02:02.000Z",5.7,{}],["2016-05-12T05:02:19.000Z",6.2,{}],["2016-05-12T05:02:32.000Z",6.7,{}],["2016-05-12T05:02:49.000Z",4.8,{}],["2016-05-12T05:03:02.000Z",4.8999999999999995,{}],["2016-05-12T05:03:20.000Z",4.6,{}],["2016-05-12T05:03:32.000Z",8.0,{}],["2016-05-12T05:03:49.000Z",4.0,{}],["2016-05-12T05:04:02.000Z",6.6,{}],["2016-05-12T05:04:19.000Z",3.8,{}],["2016-05-12T05:04:32.000Z",5.8,{}],["2016-05-12T05:04:49.000Z",4.0,{}],["2016-05-12T05:05:02.000Z",6.2,{}],["2016-05-12T05:05:20.000Z",3.9,{}],["2016-05-12T05:05:32.000Z",8.7,{}],["2016-05-12T05:05:49.000Z",4.9,{}],["2016-05-12T05:06:02.000Z",5.8,{}],["2016-05-12T05:06:19.000Z",3.9,{}],["2016-05-12T05:06:32.000Z",5.3,{}],["2016-05-12T05:06:49.000Z",4.6,{}],["2016-05-12T05:07:02.000Z",6.3,{}],["2016-05-12T05:07:19.000Z",4.4,{}],["2016-05-12T05:07:32.000Z",7.4,{}],["2016-05-12T05:07:49.000Z",4.3999999999999995,{}],["2016-05-12T05:08:02.000Z",5.1,{}],["2016-05-12T05:08:19.000Z",4.1,{}],["2016-05-12T05:08:32.000Z",5.0,{}],["2016-05-12T05:08:49.000Z",4.6,{}],["2016-05-12T05:09:02.000Z",6.3,{}],["2016-05-12T05:09:19.000Z",3.7,{}],["2016-05-12T05:09:32.000Z",7.3,{}],["2016-05-12T05:09:49.000Z",4.0,{}],["2016-05-12T05:10:02.000Z",4.8999999999999995,{}],["2016-05-12T05:10:20.000Z",4.8999999999999995,{}],["2016-05-12T05:10:32.000Z",7.4,{}],["2016-05-12T05:10:49.000Z",4.5,{}],["2016-05-12T05:11:02.000Z",7.1,{}],["2016-05-12T05:11:20.000Z",3.9,{}],["2016-05-12T05:11:32.000Z",6.2,{}],["2016-05-12T05:11:49.000Z",3.6,{}],["2016-05-12T05:12:02.000Z",5.8999999999999995,{}],["2016-05-12T05:12:19.000Z",4.699999999999999,{}],["2016-05-12T05:12:32.000Z",6.0,{}],["2016-05-12T05:12:49.000Z",3.8,{}],["2016-05-12T05:13:02.000Z",7.3,{}],["2016-05-12T05:13:19.000Z",4.5,{}],["2016-05-12T05:13:32.000Z",5.1,{}],["2016-05-12T05:13:49.000Z",3.9,{}],["2016-05-12T05:14:02.000Z",6.6,{}],["2016-05-12T05:14:19.000Z",4.3,{}],["2016-05-12T05:14:32.000Z",7.5,{}],["2016-05-12T05:14:49.000Z",3.7,{}],["2016-05-12T05:15:03.000Z",5.1,{}],["2016-05-12T05:15:19.000Z",4.5,{}],["2016-05-12T05:15:33.000Z",7.3,{}],["2016-05-12T05:15:49.000Z",3.8000000000000003,{}],["2016-05-12T05:16:03.000Z",6.8999999999999995,{}],["2016-05-12T05:16:19.000Z",4.3,{}],["2016-05-12T05:16:33.000Z",6.2,{}],["2016-05-12T05:16:49.000Z",3.8,{}],["2016-05-12T05:17:03.000Z",6.4,{}],["2016-05-12T05:17:20.000Z",3.8,{}],["2016-05-12T05:17:33.000Z",6.8999999999999995,{}],["2016-05-12T05:17:49.000Z",4.3999999999999995,{}],["2016-05-12T05:18:03.000Z",6.9,{}],["2016-05-12T05:18:19.000Z",4.3,{}],["2016-05-12T05:18:33.000Z",6.6,{}],["2016-05-12T05:18:50.000Z",4.2,{}],["2016-05-12T05:19:03.000Z",4.4,{}],["2016-05-12T05:19:19.000Z",5.5,{}],["2016-05-12T05:19:33.000Z",7.1,{}],["2016-05-12T05:19:49.000Z",4.9,{}],["2016-05-12T05:20:03.000Z",6.8,{}],["2016-05-12T05:20:19.000Z",4.1,{}],["2016-05-12T05:20:33.000Z",7.3,{}],["2016-05-12T05:20:49.000Z",4.8999999999999995,{}],["2016-05-12T05:21:03.000Z",7.7,{}],["2016-05-12T05:21:20.000Z",4.8,{}],["2016-05-12T05:21:33.000Z",6.5,{}],["2016-05-12T05:21:50.000Z",4.1,{}],["2016-05-12T05:22:03.000Z",6.4,{}],["2016-05-12T05:22:20.000Z",4.0,{}],["2016-05-12T05:22:33.000Z",8.1,{}],["2016-05-12T05:22:50.000Z",3.7,{}],["2016-05-12T05:23:03.000Z",5.2,{}],["2016-05-12T05:23:20.000Z",5.3,{}],["2016-05-12T05:23:33.000Z",6.8,{}],["2016-05-12T05:23:50.000Z",4.1,{}],["2016-05-12T05:24:03.000Z",7.3,{}],["2016-05-12T05:24:20.000Z",3.9,{}],["2016-05-12T05:24:33.000Z",5.3,{}],["2016-05-12T05:24:50.000Z",3.9,{}],["2016-05-12T05:25:03.000Z",6.9,{}],["2016-05-12T05:25:20.000Z",4.3999999999999995,{}],["2016-05-12T05:25:33.000Z",8.9,{}],["2016-05-12T05:25:50.000Z",4.1,{}],["2016-05-12T05:26:03.000Z",7.0,{}],["2016-05-12T05:26:20.000Z",4.8,{}],["2016-05-12T05:26:33.000Z",6.3,{}],["2016-05-12T05:26:50.000Z",3.7,{}],["2016-05-12T05:27:03.000Z",6.6,{}],["2016-05-12T05:27:20.000Z",4.3999999999999995,{}],["2016-05-12T05:27:33.000Z",5.1,{}],["2016-05-12T05:27:50.000Z",3.5,{}],["2016-05-12T05:28:03.000Z",5.9,{}],["2016-05-12T05:28:20.000Z",4.0,{}],["2016-05-12T05:28:33.000Z",6.2,{}],["2016-05-12T05:28:50.000Z",4.0,{}],["2016-05-12T05:29:03.000Z",6.3999999999999995,{}],["2016-05-12T05:29:20.000Z",4.199999999999999,{}],["2016-05-12T05:29:33.000Z",4.5,{}],["2016-05-12T05:29:50.000Z",3.9,{}],["2016-05-12T05:30:03.000Z",5.5,{}],["2016-05-12T05:30:20.000Z",3.7,{}],["2016-05-12T05:30:33.000Z",7.9,{}],["2016-05-12T05:30:50.000Z",4.699999999999999,{}],["2016-05-12T05:31:03.000Z",6.1,{}],["2016-05-12T05:31:20.000Z",5.1,{}],["2016-05-12T05:31:33.000Z",6.4,{}],["2016-05-12T05:31:50.000Z",4.8,{}],["2016-05-12T05:32:03.000Z",5.3,{}],["2016-05-12T05:32:20.000Z",4.3,{}],["2016-05-12T05:32:33.000Z",6.8999999999999995,{}],["2016-05-12T05:32:50.000Z",4.0,{}],["2016-05-12T05:33:03.000Z",8.1,{}],["2016-05-12T05:33:20.000Z",4.3,{}],["2016-05-12T05:33:33.000Z",6.1,{}],["2016-05-12T05:33:51.000Z",3.7,{}],["2016-05-12T05:34:03.000Z",6.0,{}],["2016-05-12T05:34:20.000Z",3.9,{}],["2016-05-12T05:34:33.000Z",8.9,{}],["2016-05-12T05:34:50.000Z",3.5,{}],["2016-05-12T05:35:03.000Z",5.1,{}],["2016-05-12T05:35:20.000Z",4.3,{}],["2016-05-12T05:35:33.000Z",7.0,{}],["2016-05-12T05:35:50.000Z",3.9,{}],["2016-05-12T05:36:03.000Z",5.2,{}],["2016-05-12T05:36:20.000Z",4.699999999999999,{}],["2016-05-12T05:36:33.000Z",8.4,{}],["2016-05-12T05:36:50.000Z",3.8,{}],["2016-05-12T05:37:04.000Z",5.8999999999999995,{}],["2016-05-12T05:37:20.000Z",4.9,{}],["2016-05-12T05:37:34.000Z",7.8,{}],["2016-05-12T05:37:50.000Z",5.8,{}],["2016-05-12T05:38:04.000Z",5.6,{}],["2016-05-12T05:38:20.000Z",6.199999999999999,{}],["2016-05-12T05:38:34.000Z",7.3,{}],["2016-05-12T05:38:50.000Z",5.1,{}],["2016-05-12T05:39:04.000Z",7.1,{}],["2016-05-12T05:39:21.000Z",5.0,{}],["2016-05-12T05:39:34.000Z",6.1,{}],["2016-05-12T05:39:50.000Z",5.5,{}],["2016-05-12T05:40:04.000Z",9.1,{}],["2016-05-12T05:40:20.000Z",8.1,{}],["2016-05-12T05:40:34.000Z",5.0,{}],["2016-05-12T05:40:50.000Z",4.9,{}],["2016-05-12T05:41:04.000Z",4.6,{}],["2016-05-12T05:41:20.000Z",5.7,{}],["2016-05-12T05:41:34.000Z",6.7,{}],["2016-05-12T05:41:51.000Z",3.7,{}],["2016-05-12T05:42:04.000Z",6.8999999999999995,{}],["2016-05-12T05:42:20.000Z",3.8,{}],["2016-05-12T05:42:34.000Z",6.2,{}],["2016-05-12T05:42:50.000Z",4.3,{}],["2016-05-12T05:43:04.000Z",6.4,{}],["2016-05-12T05:43:20.000Z",4.0,{}],["2016-05-12T05:43:34.000Z",5.6,{}],["2016-05-12T05:43:50.000Z",4.1,{}],["2016-05-12T05:44:04.000Z",6.5,{}],["2016-05-12T05:44:20.000Z",3.9,{}],["2016-05-12T05:44:34.000Z",7.2,{}],["2016-05-12T05:44:50.000Z",4.9,{}],["2016-05-12T05:45:04.000Z",6.0,{}],["2016-05-12T05:45:20.000Z",4.0,{}],["2016-05-12T05:45:34.000Z",6.5,{}],["2016-05-12T05:45:51.000Z",4.4,{}],["2016-05-12T05:46:04.000Z",5.4,{}],["2016-05-12T05:46:21.000Z",4.199999999999999,{}],["2016-05-12T05:46:34.000Z",5.6,{}],["2016-05-12T05:46:51.000Z",4.8,{}],["2016-05-12T05:47:04.000Z",5.8,{}],["2016-05-12T05:47:21.000Z",3.9,{}],["2016-05-12T05:47:34.000Z",6.3999999999999995,{}],["2016-05-12T05:47:51.000Z",4.0,{}],["2016-05-12T05:48:04.000Z",6.3,{}],["2016-05-12T05:48:21.000Z",4.3999999999999995,{}],["2016-05-12T05:48:34.000Z",6.8,{}],["2016-05-12T05:48:51.000Z",4.5,{}],["2016-05-12T05:49:04.000Z",6.5,{}],["2016-05-12T05:49:21.000Z",4.9,{}],["2016-05-12T05:49:34.000Z",6.3999999999999995,{}],["2016-05-12T05:49:51.000Z",5.1,{}],["2016-05-12T05:50:04.000Z",6.8,{}],["2016-05-12T05:50:21.000Z",5.5,{}],["2016-05-12T05:50:34.000Z",6.6,{}],["2016-05-12T05:50:52.000Z",3.9,{}],["2016-05-12T05:51:04.000Z",5.7,{}],["2016-05-12T05:51:21.000Z",4.3,{}],["2016-05-12T05:51:34.000Z",5.9,{}],["2016-05-12T05:51:51.000Z",3.8000000000000003,{}],["2016-05-12T05:52:04.000Z",5.5,{}],["2016-05-12T05:52:21.000Z",4.5,{}],["2016-05-12T05:52:34.000Z",6.8,{}],["2016-05-12T05:52:51.000Z",3.9,{}],["2016-05-12T05:53:04.000Z",6.6,{}],["2016-05-12T05:53:21.000Z",4.1,{}],["2016-05-12T05:53:34.000Z",4.8,{}],["2016-05-12T05:53:51.000Z",3.8,{}],["2016-05-12T05:54:04.000Z",6.9,{}],["2016-05-12T05:54:21.000Z",4.1,{}],["2016-05-12T05:54:34.000Z",7.6,{}],["2016-05-12T05:54:52.000Z",3.8,{}],["2016-05-12T05:55:04.000Z",7.1,{}],["2016-05-12T05:55:21.000Z",3.7,{}],["2016-05-12T05:55:34.000Z",6.3,{}],["2016-05-12T05:55:51.000Z",4.3,{}],["2016-05-12T05:56:04.000Z",6.1,{}],["2016-05-12T05:56:21.000Z",3.8,{}],["2016-05-12T05:56:34.000Z",5.7,{}],["2016-05-12T05:56:52.000Z",4.4,{}],["2016-05-12T05:57:04.000Z",5.4,{}],["2016-05-12T05:57:21.000Z",4.8,{}],["2016-05-12T05:57:34.000Z",7.1,{}],["2016-05-12T05:57:51.000Z",3.6,{}],["2016-05-12T05:58:04.000Z",6.2,{}],["2016-05-12T05:58:21.000Z",4.4,{}],["2016-05-12T05:58:34.000Z",7.2,{}],["2016-05-12T05:58:51.000Z",4.8999999999999995,{}],["2016-05-12T05:59:04.000Z",5.5,{}],["2016-05-12T05:59:21.000Z",4.2,{}],["2016-05-12T05:59:34.000Z",6.1,{}],["2016-05-12T05:59:51.000Z",4.7,{}],["2016-05-12T06:00:04.000Z",5.4,{}],["2016-05-12T06:00:21.000Z",5.2,{}],["2016-05-12T06:00:34.000Z",8.6,{}],["2016-05-12T06:00:52.000Z",4.0,{}],["2016-05-12T06:01:04.000Z",6.3,{}],["2016-05-12T06:01:21.000Z",4.0,{}],["2016-05-12T06:01:34.000Z",5.5,{}],["2016-05-12T06:01:51.000Z",4.2,{}],["2016-05-12T06:02:05.000Z",5.8,{}],["2016-05-12T06:02:22.000Z",4.7,{}],["2016-05-12T06:02:35.000Z",5.0,{}],["2016-05-12T06:02:51.000Z",4.2,{}],["2016-05-12T06:03:05.000Z",6.6,{}],["2016-05-12T06:03:21.000Z",3.9,{}],["2016-05-12T06:03:35.000Z",6.7,{}],["2016-05-12T06:03:51.000Z",4.5,{}],["2016-05-12T06:04:05.000Z",6.3999999999999995,{}],["2016-05-12T06:04:22.000Z",3.7,{}],["2016-05-12T06:04:35.000Z",7.8,{}],["2016-05-12T06:04:52.000Z",4.1,{}],["2016-05-12T06:05:05.000Z",5.5,{}],["2016-05-12T06:05:21.000Z",3.8,{}],["2016-05-12T06:05:35.000Z",5.5,{}],["2016-05-12T06:05:51.000Z",3.5,{}],["2016-05-12T06:06:05.000Z",5.199999999999999,{}],["2016-05-12T06:06:21.000Z",4.4,{}],["2016-05-12T06:06:35.000Z",7.8,{}],["2016-05-12T06:06:51.000Z",3.7,{}],["2016-05-12T06:07:05.000Z",5.1,{}],["2016-05-12T06:07:23.000Z",3.9,{}],["2016-05-12T06:07:35.000Z",7.3,{}],["2016-05-12T06:07:51.000Z",4.0,{}],["2016-05-12T06:08:05.000Z",4.3,{}],["2016-05-12T06:08:23.000Z",4.0,{}],["2016-05-12T06:08:35.000Z",7.0,{}],["2016-05-12T06:08:52.000Z",4.3999999999999995,{}],["2016-05-12T06:09:05.000Z",6.3,{}],["2016-05-12T06:09:21.000Z",3.6,{}],["2016-05-12T06:09:35.000Z",6.5,{}],["2016-05-12T06:09:52.000Z",3.4,{}],["2016-05-12T06:10:05.000Z",5.7,{}],["2016-05-12T06:10:22.000Z",4.4,{}],["2016-05-12T06:10:35.000Z",6.6,{}],["2016-05-12T06:10:52.000Z",4.0,{}],["2016-05-12T06:11:05.000Z",6.0,{}],["2016-05-12T06:11:23.000Z",3.7,{}],["2016-05-12T06:11:35.000Z",7.3,{}],["2016-05-12T06:11:52.000Z",4.0,{}],["2016-05-12T06:12:05.000Z",5.6,{}],["2016-05-12T06:12:22.000Z",3.9,{}],["2016-05-12T06:12:35.000Z",7.3,{}],["2016-05-12T06:12:52.000Z",4.0,{}],["2016-05-12T06:13:05.000Z",4.8,{}],["2016-05-12T06:13:22.000Z",4.5,{}],["2016-05-12T06:13:35.000Z",4.5,{}],["2016-05-12T06:13:52.000Z",3.7,{}],["2016-05-12T06:14:05.000Z",5.9,{}],["2016-05-12T06:14:22.000Z",4.1,{}],["2016-05-12T06:14:35.000Z",7.5,{}],["2016-05-12T06:14:53.000Z",4.5,{}],["2016-05-12T06:15:05.000Z",6.4,{}],["2016-05-12T06:15:22.000Z",5.4,{}],["2016-05-12T06:15:35.000Z",5.8999999999999995,{}],["2016-05-12T06:15:52.000Z",4.1,{}],["2016-05-12T06:16:05.000Z",5.8,{}],["2016-05-12T06:16:22.000Z",5.3999999999999995,{}],["2016-05-12T06:16:35.000Z",4.7,{}],["2016-05-12T06:16:53.000Z",3.7,{}],["2016-05-12T06:17:05.000Z",3.8,{}],["2016-05-12T06:17:23.000Z",4.3,{}],["2016-05-12T06:17:35.000Z",1.8,{}],["2016-05-12T06:17:52.000Z",4.199999999999999,{}],["2016-05-12T06:18:05.000Z",6.0,{}],["2016-05-12T06:18:22.000Z",7.0,{}],["2016-05-12T06:18:35.000Z",7.0,{}],["2016-05-12T06:18:52.000Z",5.5,{}],["2016-05-12T06:19:05.000Z",3.2,{}],["2016-05-12T06:19:22.000Z",5.6,{}],["2016-05-12T06:19:35.000Z",5.9,{}],["2016-05-12T06:19:52.000Z",5.8,{}],["2016-05-12T06:20:05.000Z",3.0,{}],["2016-05-12T06:20:22.000Z",7.199999999999999,{}],["2016-05-12T06:20:35.000Z",5.4,{}],["2016-05-12T06:20:52.000Z",7.4,{}],["2016-05-12T06:21:05.000Z",2.7,{}],["2016-05-12T06:21:22.000Z",7.2,{}],["2016-05-12T06:21:35.000Z",4.2,{}],["2016-05-12T06:21:52.000Z",6.6,{}],["2016-05-12T06:22:05.000Z",3.9,{}],["2016-05-12T06:22:22.000Z",5.8999999999999995,{}],["2016-05-12T06:22:35.000Z",6.8,{}],["2016-05-12T06:22:52.000Z",5.6,{}],["2016-05-12T06:23:05.000Z",2.1,{}],["2016-05-12T06:23:23.000Z",5.8,{}],["2016-05-12T06:23:36.000Z",3.7,{}],["2016-05-12T06:23:52.000Z",6.8,{}],["2016-05-12T06:24:06.000Z",3.5,{}],["2016-05-12T06:24:22.000Z",7.5,{}],["2016-05-12T06:24:36.000Z",6.3,{}],["2016-05-12T06:24:52.000Z",6.8,{}],["2016-05-12T06:25:06.000Z",7.5,{}],["2016-05-12T06:25:22.000Z",5.5,{}],["2016-05-12T06:25:36.000Z",8.0,{}],["2016-05-12T06:25:52.000Z",6.1,{}],["2016-05-12T06:26:06.000Z",5.8,{}],["2016-05-12T06:26:22.000Z",6.0,{}],["2016-05-12T06:26:36.000Z",7.5,{}],["2016-05-12T06:26:53.000Z",6.9,{}],["2016-05-12T06:27:06.000Z",6.5,{}],["2016-05-12T06:27:22.000Z",6.5,{}],["2016-05-12T06:27:36.000Z",7.8,{}],["2016-05-12T06:27:52.000Z",6.1,{}],["2016-05-12T06:28:06.000Z",7.3,{}],["2016-05-12T06:28:23.000Z",5.2,{}],["2016-05-12T06:28:36.000Z",6.4,{}],["2016-05-12T06:28:52.000Z",6.699999999999999,{}],["2016-05-12T06:29:06.000Z",6.3,{}],["2016-05-12T06:29:22.000Z",6.1,{}],["2016-05-12T06:29:36.000Z",5.0,{}],["2016-05-12T06:29:52.000Z",5.8,{}],["2016-05-12T06:30:06.000Z",6.9,{}],["2016-05-12T06:30:23.000Z",6.699999999999999,{}],["2016-05-12T06:30:36.000Z",6.5,{}],["2016-05-12T06:30:52.000Z",7.2,{}],["2016-05-12T06:31:06.000Z",6.1,{}],["2016-05-12T06:31:23.000Z",7.1,{}],["2016-05-12T06:31:36.000Z",7.1,{}],["2016-05-12T06:31:52.000Z",6.3,{}],["2016-05-12T06:32:06.000Z",7.9,{}],["2016-05-12T06:32:23.000Z",6.8,{}],["2016-05-12T06:32:36.000Z",9.0,{}],["2016-05-12T06:32:53.000Z",6.8,{}],["2016-05-12T06:33:06.000Z",7.1,{}],["2016-05-12T06:33:23.000Z",6.5,{}],["2016-05-12T06:33:36.000Z",8.3,{}],["2016-05-12T06:33:53.000Z",6.7,{}],["2016-05-12T06:34:06.000Z",8.7,{}],["2016-05-12T06:34:23.000Z",7.1,{}],["2016-05-12T06:34:36.000Z",8.7,{}],["2016-05-12T06:34:53.000Z",6.6,{}],["2016-05-12T06:35:06.000Z",4.9,{}],["2016-05-12T06:35:23.000Z",6.9,{}],["2016-05-12T06:35:36.000Z",7.6,{}],["2016-05-12T06:35:53.000Z",5.5,{}],["2016-05-12T06:36:06.000Z",6.0,{}],["2016-05-12T06:36:23.000Z",5.4,{}],["2016-05-12T06:36:36.000Z",8.6,{}],["2016-05-12T06:36:53.000Z",5.8,{}],["2016-05-12T06:37:06.000Z",5.6,{}],["2016-05-12T06:37:23.000Z",6.6,{}],["2016-05-12T06:37:36.000Z",6.0,{}],["2016-05-12T06:37:53.000Z",5.199999999999999,{}],["2016-05-12T06:38:06.000Z",6.6,{}],["2016-05-12T06:38:23.000Z",6.9,{}],["2016-05-12T06:38:36.000Z",7.1,{}],["2016-05-12T06:38:53.000Z",6.4,{}],["2016-05-12T06:39:06.000Z",6.9,{}],["2016-05-12T06:39:23.000Z",5.5,{}],["2016-05-12T06:39:36.000Z",6.5,{}],["2016-05-12T06:39:53.000Z",6.3,{}],["2016-05-12T06:40:06.000Z",5.3999999999999995,{}],["2016-05-12T06:40:23.000Z",5.5,{}],["2016-05-12T06:40:36.000Z",8.8,{}],["2016-05-12T06:40:53.000Z",5.8999999999999995,{}],["2016-05-12T06:41:06.000Z",5.4,{}],["2016-05-12T06:41:23.000Z",5.3,{}],["2016-05-12T06:41:36.000Z",7.0,{}],["2016-05-12T06:41:53.000Z",5.6,{}],["2016-05-12T06:42:06.000Z",6.199999999999999,{}],["2016-05-12T06:42:23.000Z",5.4,{}],["2016-05-12T06:42:36.000Z",6.5,{}],["2016-05-12T06:42:53.000Z",5.8999999999999995,{}],["2016-05-12T06:43:06.000Z",7.5,{}],["2016-05-12T06:43:23.000Z",5.6,{}],["2016-05-12T06:43:36.000Z",6.8,{}],["2016-05-12T06:43:53.000Z",5.3,{}],["2016-05-12T06:44:06.000Z",7.2,{}],["2016-05-12T06:44:23.000Z",6.5,{}],["2016-05-12T06:44:36.000Z",6.1,{}],["2016-05-12T06:44:53.000Z",5.699999999999999,{}],["2016-05-12T06:45:07.000Z",7.7,{}],["2016-05-12T06:45:23.000Z",6.6,{}],["2016-05-12T06:45:37.000Z",7.0,{}],["2016-05-12T06:45:53.000Z",8.6,{}],["2016-05-12T06:46:07.000Z",5.3,{}],["2016-05-12T06:46:23.000Z",7.5,{}],["2016-05-12T06:46:37.000Z",8.4,{}],["2016-05-12T06:46:53.000Z",7.0,{}],["2016-05-12T06:47:07.000Z",6.1,{}],["2016-05-12T06:47:23.000Z",6.1,{}],["2016-05-12T06:47:37.000Z",9.9,{}],["2016-05-12T06:47:54.000Z",6.8,{}],["2016-05-12T06:48:07.000Z",6.4,{}],["2016-05-12T06:48:24.000Z",6.5,{}],["2016-05-12T06:48:37.000Z",9.0,{}],["2016-05-12T06:48:54.000Z",6.6,{}],["2016-05-12T06:49:07.000Z",5.9,{}],["2016-05-12T06:49:23.000Z",6.1,{}],["2016-05-12T06:49:37.000Z",7.9,{}],["2016-05-12T06:49:53.000Z",5.699999999999999,{}],["2016-05-12T06:50:07.000Z",6.3,{}],["2016-05-12T06:50:23.000Z",5.5,{}],["2016-05-12T06:50:37.000Z",7.0,{}],["2016-05-12T06:50:53.000Z",5.4,{}],["2016-05-12T06:51:07.000Z",7.1,{}],["2016-05-12T06:51:23.000Z",6.2,{}],["2016-05-12T06:51:37.000Z",3.7,{}],["2016-05-12T06:51:53.000Z",7.1,{}],["2016-05-12T06:52:07.000Z",6.3999999999999995,{}],["2016-05-12T06:52:23.000Z",5.4,{}],["2016-05-12T06:52:37.000Z",6.4,{}],["2016-05-12T06:52:53.000Z",5.0,{}],["2016-05-12T06:53:07.000Z",5.8,{}],["2016-05-12T06:53:23.000Z",5.5,{}],["2016-05-12T06:53:37.000Z",6.8,{}],["2016-05-12T06:53:54.000Z",5.3,{}],["2016-05-12T06:54:07.000Z",5.5,{}],["2016-05-12T06:54:24.000Z",4.9,{}],["2016-05-12T06:54:37.000Z",7.9,{}],["2016-05-12T06:54:54.000Z",4.699999999999999,{}],["2016-05-12T06:55:07.000Z",9.0,{}],["2016-05-12T06:55:24.000Z",5.3999999999999995,{}],["2016-05-12T06:55:37.000Z",6.8,{}],["2016-05-12T06:55:54.000Z",8.4,{}],["2016-05-12T06:56:07.000Z",7.2,{}],["2016-05-12T06:56:24.000Z",4.9,{}],["2016-05-12T06:56:37.000Z",6.7,{}],["2016-05-12T06:56:54.000Z",5.7,{}],["2016-05-12T06:57:07.000Z",4.5,{}],["2016-05-12T06:57:24.000Z",5.199999999999999,{}],["2016-05-12T06:57:37.000Z",7.2,{}],["2016-05-12T06:57:54.000Z",5.0,{}],["2016-05-12T06:58:07.000Z",6.4,{}],["2016-05-12T06:58:24.000Z",4.8,{}],["2016-05-12T06:58:37.000Z",5.8,{}],["2016-05-12T06:58:54.000Z",5.2,{}],["2016-05-12T06:59:07.000Z",6.2,{}],["2016-05-12T06:59:24.000Z",5.3,{}],["2016-05-12T06:59:37.000Z",7.5,{}],["2016-05-12T06:59:54.000Z",5.5,{}],["2016-05-12T07:00:07.000Z",6.8,{}],["2016-05-12T07:00:24.000Z",5.3,{}],["2016-05-12T07:00:37.000Z",6.0,{}],["2016-05-12T07:00:54.000Z",4.6,{}],["2016-05-12T07:01:07.000Z",6.1,{}],["2016-05-12T07:01:24.000Z",5.3,{}],["2016-05-12T07:01:37.000Z",6.9,{}],["2016-05-12T07:01:54.000Z",5.0,{}],["2016-05-12T07:02:07.000Z",6.6,{}],["2016-05-12T07:02:25.000Z",5.0,{}],["2016-05-12T07:02:37.000Z",6.9,{}],["2016-05-12T07:02:54.000Z",4.5,{}],["2016-05-12T07:03:07.000Z",6.6,{}],["2016-05-12T07:03:24.000Z",4.699999999999999,{}],["2016-05-12T07:03:37.000Z",7.2,{}],["2016-05-12T07:03:54.000Z",5.3999999999999995,{}],["2016-05-12T07:04:07.000Z",7.4,{}],["2016-05-12T07:04:24.000Z",4.8,{}],["2016-05-12T07:04:37.000Z",6.1,{}],["2016-05-12T07:04:55.000Z",5.4,{}],["2016-05-12T07:05:07.000Z",7.8,{}],["2016-05-12T07:05:25.000Z",4.8999999999999995,{}],["2016-05-12T07:05:37.000Z",7.1,{}],["2016-05-12T07:05:55.000Z",4.4,{}],["2016-05-12T07:06:08.000Z",5.9,{}],["2016-05-12T07:06:25.000Z",4.6,{}],["2016-05-12T07:06:38.000Z",7.3,{}],["2016-05-12T07:06:54.000Z",5.1,{}],["2016-05-12T07:07:08.000Z",7.1,{}],["2016-05-12T07:07:24.000Z",4.8,{}],["2016-05-12T07:07:38.000Z",6.2,{}],["2016-05-12T07:07:54.000Z",4.7,{}],["2016-05-12T07:08:08.000Z",6.4,{}],["2016-05-12T07:08:24.000Z",5.0,{}],["2016-05-12T07:08:38.000Z",6.0,{}],["2016-05-12T07:08:54.000Z",5.2,{}],["2016-05-12T07:09:08.000Z",7.6,{}],["2016-05-12T07:09:24.000Z",4.8,{}],["2016-05-12T07:09:38.000Z",6.4,{}],["2016-05-12T07:09:54.000Z",4.5,{}],["2016-05-12T07:10:08.000Z",7.6,{}],["2016-05-12T07:10:24.000Z",4.8,{}],["2016-05-12T07:10:38.000Z",6.699999999999999,{}],["2016-05-12T07:10:54.000Z",5.0,{}],["2016-05-12T07:11:08.000Z",5.8,{}],["2016-05-12T07:11:25.000Z",5.2,{}],["2016-05-12T07:11:38.000Z",7.0,{}],["2016-05-12T07:11:54.000Z",4.9,{}],["2016-05-12T07:12:08.000Z",8.4,{}],["2016-05-12T07:12:24.000Z",5.2,{}],["2016-05-12T07:12:38.000Z",7.9,{}],["2016-05-12T07:12:54.000Z",5.0,{}],["2016-05-12T07:13:08.000Z",5.7,{}],["2016-05-12T07:13:24.000Z",4.9,{}],["2016-05-12T07:13:38.000Z",7.3,{}],["2016-05-12T07:13:55.000Z",4.8,{}],["2016-05-12T07:14:08.000Z",7.5,{}],["2016-05-12T07:14:24.000Z",5.6,{}],["2016-05-12T07:14:38.000Z",6.4,{}],["2016-05-12T07:14:54.000Z",5.0,{}],["2016-05-12T07:15:08.000Z",6.699999999999999,{}],["2016-05-12T07:15:24.000Z",4.9,{}],["2016-05-12T07:15:38.000Z",6.8,{}],["2016-05-12T07:15:55.000Z",4.8,{}],["2016-05-12T07:16:08.000Z",6.9,{}],["2016-05-12T07:16:24.000Z",5.8,{}],["2016-05-12T07:16:38.000Z",7.6,{}],["2016-05-12T07:16:54.000Z",4.8999999999999995,{}],["2016-05-12T07:17:08.000Z",5.199999999999999,{}],["2016-05-12T07:17:24.000Z",4.9,{}],["2016-05-12T07:17:38.000Z",8.0,{}],["2016-05-12T07:17:55.000Z",5.7,{}],["2016-05-12T07:18:08.000Z",8.3,{}],["2016-05-12T07:18:25.000Z",4.9,{}],["2016-05-12T07:18:38.000Z",5.1,{}],["2016-05-12T07:18:55.000Z",5.1,{}],["2016-05-12T07:19:08.000Z",8.8,{}],["2016-05-12T07:19:25.000Z",4.5,{}],["2016-05-12T07:19:38.000Z",6.8,{}],["2016-05-12T07:19:55.000Z",4.9,{}],["2016-05-12T07:20:08.000Z",6.6,{}],["2016-05-12T07:20:25.000Z",5.0,{}],["2016-05-12T07:20:38.000Z",7.2,{}],["2016-05-12T07:20:55.000Z",5.9,{}],["2016-05-12T07:21:08.000Z",6.8,{}],["2016-05-12T07:21:25.000Z",5.1,{}],["2016-05-12T07:21:38.000Z",6.2,{}],["2016-05-12T07:21:55.000Z",4.6,{}],["2016-05-12T07:22:08.000Z",5.699999999999999,{}],["2016-05-12T07:22:25.000Z",5.1,{}],["2016-05-12T07:22:38.000Z",6.7,{}],["2016-05-12T07:22:55.000Z",6.199999999999999,{}],["2016-05-12T07:23:08.000Z",7.5,{}],["2016-05-12T07:23:25.000Z",4.8,{}],["2016-05-12T07:23:38.000Z",9.1,{}],["2016-05-12T07:23:55.000Z",4.6,{}],["2016-05-12T07:24:08.000Z",6.199999999999999,{}],["2016-05-12T07:24:25.000Z",5.1,{}],["2016-05-12T07:24:38.000Z",7.1,{}],["2016-05-12T07:24:55.000Z",5.0,{}],["2016-05-12T07:25:08.000Z",7.9,{}],["2016-05-12T07:25:25.000Z",5.1,{}],["2016-05-12T07:25:38.000Z",9.0,{}],["2016-05-12T07:25:55.000Z",5.3999999999999995,{}],["2016-05-12T07:26:08.000Z",7.1,{}],["2016-05-12T07:26:25.000Z",4.7,{}],["2016-05-12T07:26:38.000Z",6.5,{}],["2016-05-12T07:26:55.000Z",5.1,{}],["2016-05-12T07:27:08.000Z",7.3,{}],["2016-05-12T07:27:25.000Z",5.0,{}],["2016-05-12T07:27:38.000Z",6.8,{}],["2016-05-12T07:27:55.000Z",5.3,{}],["2016-05-12T07:28:08.000Z",7.7,{}],["2016-05-12T07:28:25.000Z",6.2,{}],["2016-05-12T07:28:38.000Z",6.0,{}],["2016-05-12T07:28:55.000Z",6.0,{}],["2016-05-12T07:29:08.000Z",7.3999999999999995,{}],["2016-05-12T07:29:25.000Z",4.9,{}],["2016-05-12T07:29:38.000Z",5.7,{}],["2016-05-12T07:29:55.000Z",5.2,{}],["2016-05-12T07:30:08.000Z",7.3,{}],["2016-05-12T07:30:25.000Z",4.8999999999999995,{}],["2016-05-12T07:30:38.000Z",7.2,{}],["2016-05-12T07:30:55.000Z",4.8,{}],["2016-05-12T07:31:08.000Z",12.299999999999999,{}],["2016-05-12T07:31:25.000Z",4.8,{}],["2016-05-12T07:31:38.000Z",6.6,{}],["2016-05-12T07:31:55.000Z",5.5,{}],["2016-05-12T07:32:08.000Z",5.8,{}],["2016-05-12T07:32:25.000Z",4.8,{}],["2016-05-12T07:32:39.000Z",6.8999999999999995,{}],["2016-05-12T07:32:56.000Z",4.8,{}],["2016-05-12T07:33:09.000Z",7.7,{}],["2016-05-12T07:33:25.000Z",4.9,{}],["2016-05-12T07:33:39.000Z",6.3,{}],["2016-05-12T07:33:55.000Z",5.199999999999999,{}],["2016-05-12T07:34:09.000Z",6.8999999999999995,{}],["2016-05-12T07:34:25.000Z",4.7,{}],["2016-05-12T07:34:39.000Z",7.8,{}],["2016-05-12T07:34:55.000Z",4.8,{}],["2016-05-12T07:35:09.000Z",5.4,{}],["2016-05-12T07:35:25.000Z",4.7,{}],["2016-05-12T07:35:39.000Z",7.9,{}],["2016-05-12T07:35:55.000Z",5.8999999999999995,{}],["2016-05-12T07:36:09.000Z",7.1,{}],["2016-05-12T07:36:25.000Z",5.5,{}],["2016-05-12T07:36:39.000Z",7.5,{}],["2016-05-12T07:36:55.000Z",5.1,{}],["2016-05-12T07:37:09.000Z",6.9,{}],["2016-05-12T07:37:26.000Z",4.8,{}],["2016-05-12T07:37:39.000Z",6.5,{}],["2016-05-12T07:37:55.000Z",5.3,{}],["2016-05-12T07:38:09.000Z",7.5,{}],["2016-05-12T07:38:25.000Z",4.8,{}],["2016-05-12T07:38:39.000Z",7.7,{}],["2016-05-12T07:38:55.000Z",4.7,{}],["2016-05-12T07:39:09.000Z",8.5,{}],["2016-05-12T07:39:25.000Z",5.3999999999999995,{}],["2016-05-12T07:39:39.000Z",5.699999999999999,{}],["2016-05-12T07:39:55.000Z",5.0,{}],["2016-05-12T07:40:09.000Z",7.0,{}],["2016-05-12T07:40:25.000Z",5.0,{}],["2016-05-12T07:40:39.000Z",5.6,{}],["2016-05-12T07:40:55.000Z",4.7,{}],["2016-05-12T07:41:09.000Z",8.0,{}],["2016-05-12T07:41:26.000Z",5.3,{}],["2016-05-12T07:41:39.000Z",7.8,{}],["2016-05-12T07:41:55.000Z",5.2,{}],["2016-05-12T07:42:09.000Z",7.8,{}],["2016-05-12T07:42:26.000Z",5.1,{}],["2016-05-12T07:42:39.000Z",7.5,{}],["2016-05-12T07:42:56.000Z",4.9,{}],["2016-05-12T07:43:09.000Z",8.4,{}],["2016-05-12T07:43:26.000Z",4.8999999999999995,{}],["2016-05-12T07:43:39.000Z",6.4,{}],["2016-05-12T07:43:56.000Z",5.5,{}],["2016-05-12T07:44:09.000Z",7.3,{}],["2016-05-12T07:44:26.000Z",4.8,{}],["2016-05-12T07:44:39.000Z",7.6,{}],["2016-05-12T07:44:56.000Z",5.0,{}],["2016-05-12T07:45:09.000Z",8.3,{}],["2016-05-12T07:45:26.000Z",4.9,{}],["2016-05-12T07:45:39.000Z",7.3999999999999995,{}],["2016-05-12T07:45:56.000Z",5.5,{}],["2016-05-12T07:46:09.000Z",5.5,{}],["2016-05-12T07:46:26.000Z",4.8999999999999995,{}],["2016-05-12T07:46:39.000Z",9.1,{}],["2016-05-12T07:46:56.000Z",5.0,{}],["2016-05-12T07:47:09.000Z",8.1,{}],["2016-05-12T07:47:26.000Z",5.0,{}],["2016-05-12T07:47:39.000Z",7.1,{}],["2016-05-12T07:47:56.000Z",6.0,{}],["2016-05-12T07:48:09.000Z",8.2,{}],["2016-05-12T07:48:26.000Z",4.7,{}],["2016-05-12T07:48:39.000Z",8.1,{}],["2016-05-12T07:48:57.000Z",4.8,{}],["2016-05-12T07:49:09.000Z",5.9,{}],["2016-05-12T07:49:26.000Z",6.1,{}],["2016-05-12T07:49:39.000Z",7.1,{}],["2016-05-12T07:49:56.000Z",6.2,{}],["2016-05-12T07:50:09.000Z",6.9,{}],["2016-05-12T07:50:26.000Z",6.2,{}],["2016-05-12T07:50:39.000Z",7.8999999999999995,{}],["2016-05-12T07:50:56.000Z",5.6,{}],["2016-05-12T07:51:09.000Z",5.6,{}],["2016-05-12T07:51:26.000Z",5.3,{}],["2016-05-12T07:51:39.000Z",5.5,{}],["2016-05-12T07:51:56.000Z",4.7,{}],["2016-05-12T07:52:09.000Z",7.199999999999999,{}],["2016-05-12T07:52:27.000Z",5.2,{}],["2016-05-12T07:52:39.000Z",10.1,{}],["2016-05-12T07:52:56.000Z",4.699999999999999,{}],["2016-05-12T07:53:09.000Z",8.7,{}],["2016-05-12T07:53:26.000Z",6.1,{}],["2016-05-12T07:53:39.000Z",7.0,{}],["2016-05-12T07:53:56.000Z",4.8999999999999995,{}],["2016-05-12T07:54:09.000Z",7.699999999999999,{}],["2016-05-12T07:54:26.000Z",5.199999999999999,{}],["2016-05-12T07:54:39.000Z",7.3,{}],["2016-05-12T07:54:56.000Z",4.6,{}],["2016-05-12T07:55:09.000Z",6.7,{}],["2016-05-12T07:55:26.000Z",5.3,{}],["2016-05-12T07:55:39.000Z",7.9,{}],["2016-05-12T07:55:56.000Z",6.8,{}],["2016-05-12T07:56:10.000Z",7.1,{}],["2016-05-12T07:56:26.000Z",6.7,{}],["2016-05-12T07:56:40.000Z",8.4,{}],["2016-05-12T07:56:56.000Z",4.6,{}],["2016-05-12T07:57:10.000Z",7.2,{}],["2016-05-12T07:57:26.000Z",5.0,{}],["2016-05-12T07:57:40.000Z",6.8,{}],["2016-05-12T07:57:56.000Z",5.0,{}],["2016-05-12T07:58:10.000Z",6.0,{}],["2016-05-12T07:58:26.000Z",5.0,{}],["2016-05-12T07:58:40.000Z",7.8,{}],["2016-05-12T07:58:56.000Z",5.4,{}],["2016-05-12T07:59:10.000Z",6.0,{}],["2016-05-12T07:59:26.000Z",5.8999999999999995,{}],["2016-05-12T07:59:40.000Z",6.2,{}],["2016-05-12T07:59:56.000Z",5.0,{}],["2016-05-12T08:00:10.000Z",7.6,{}],["2016-05-12T08:00:26.000Z",4.6,{}],["2016-05-12T08:00:40.000Z",6.4,{}],["2016-05-12T08:00:56.000Z",4.8,{}],["2016-05-12T08:01:10.000Z",7.3999999999999995,{}],["2016-05-12T08:01:26.000Z",6.0,{}],["2016-05-12T08:01:40.000Z",6.4,{}],["2016-05-12T08:01:57.000Z",4.8,{}],["2016-05-12T08:02:10.000Z",7.7,{}],["2016-05-12T08:02:26.000Z",6.0,{}],["2016-05-12T08:02:40.000Z",8.9,{}],["2016-05-12T08:02:56.000Z",4.7,{}],["2016-05-12T08:03:10.000Z",7.2,{}],["2016-05-12T08:03:27.000Z",5.5,{}],["2016-05-12T08:03:40.000Z",6.199999999999999,{}],["2016-05-12T08:03:56.000Z",5.0,{}],["2016-05-12T08:04:10.000Z",8.3,{}],["2016-05-12T08:04:26.000Z",4.4,{}],["2016-05-12T08:04:40.000Z",7.6,{}],["2016-05-12T08:04:57.000Z",4.699999999999999,{}],["2016-05-12T08:05:10.000Z",6.5,{}],["2016-05-12T08:05:26.000Z",5.0,{}],["2016-05-12T08:05:40.000Z",7.8999999999999995,{}],["2016-05-12T08:05:56.000Z",4.7,{}],["2016-05-12T08:06:10.000Z",8.1,{}],["2016-05-12T08:06:26.000Z",4.7,{}],["2016-05-12T08:06:40.000Z",7.8999999999999995,{}],["2016-05-12T08:06:56.000Z",4.8,{}],["2016-05-12T08:07:10.000Z",8.2,{}],["2016-05-12T08:07:26.000Z",5.699999999999999,{}],["2016-05-12T08:07:40.000Z",6.6,{}],["2016-05-12T08:07:56.000Z",5.4,{}],["2016-05-12T08:08:10.000Z",5.6,{}],["2016-05-12T08:08:28.000Z",5.1,{}],["2016-05-12T08:08:40.000Z",6.199999999999999,{}],["2016-05-12T08:08:57.000Z",5.1,{}],["2016-05-12T08:09:10.000Z",9.2,{}],["2016-05-12T08:09:27.000Z",5.7,{}],["2016-05-12T08:09:40.000Z",7.0,{}],["2016-05-12T08:09:57.000Z",5.9,{}],["2016-05-12T08:10:10.000Z",6.7,{}],["2016-05-12T08:10:27.000Z",4.7,{}],["2016-05-12T08:10:40.000Z",6.7,{}],["2016-05-12T08:10:57.000Z",5.0,{}],["2016-05-12T08:11:10.000Z",7.4,{}],["2016-05-12T08:11:27.000Z",7.4,{}],["2016-05-12T08:11:40.000Z",7.2,{}],["2016-05-12T08:11:57.000Z",6.4,{}],["2016-05-12T08:12:10.000Z",7.199999999999999,{}],["2016-05-12T08:12:27.000Z",5.5,{}],["2016-05-12T08:12:40.000Z",7.5,{}],["2016-05-12T08:12:57.000Z",5.3,{}],["2016-05-12T08:13:10.000Z",5.4,{}],["2016-05-12T08:13:27.000Z",5.3,{}],["2016-05-12T08:13:40.000Z",7.5,{}],["2016-05-12T08:13:57.000Z",4.8,{}],["2016-05-12T08:14:10.000Z",6.6,{}],["2016-05-12T08:14:27.000Z",5.3,{}],["2016-05-12T08:14:40.000Z",5.7,{}],["2016-05-12T08:14:57.000Z",4.9,{}],["2016-05-12T08:15:10.000Z",8.0,{}],["2016-05-12T08:15:27.000Z",5.2,{}],["2016-05-12T08:15:40.000Z",7.9,{}],["2016-05-12T08:15:57.000Z",5.1,{}],["2016-05-12T08:16:10.000Z",7.3,{}],["2016-05-12T08:16:27.000Z",5.0,{}],["2016-05-12T08:16:40.000Z",6.2,{}],["2016-05-12T08:16:57.000Z",4.8,{}],["2016-05-12T08:17:10.000Z",8.1,{}],["2016-05-12T08:17:28.000Z",5.2,{}],["2016-05-12T08:17:40.000Z",7.5,{}],["2016-05-12T08:17:57.000Z",5.4,{}],["2016-05-12T08:18:10.000Z",8.4,{}],["2016-05-12T08:18:27.000Z",7.6,{}],["2016-05-12T08:18:40.000Z",6.3,{}],["2016-05-12T08:18:57.000Z",4.6,{}],["2016-05-12T08:19:11.000Z",7.199999999999999,{}],["2016-05-12T08:19:27.000Z",3.7,{}],["2016-05-12T08:19:41.000Z",6.4,{}],["2016-05-12T08:19:57.000Z",3.3000000000000003,{}],["2016-05-12T08:20:11.000Z",7.0,{}],["2016-05-12T08:20:27.000Z",7.1,{}],["2016-05-12T08:20:41.000Z",9.2,{}],["2016-05-12T08:20:57.000Z",10.4,{}],["2016-05-12T08:21:11.000Z",5.5,{}],["2016-05-12T08:21:27.000Z",8.4,{}],["2016-05-12T08:21:41.000Z",7.5,{}],["2016-05-12T08:21:57.000Z",9.2,{}],["2016-05-12T08:22:11.000Z",6.6,{}],["2016-05-12T08:22:27.000Z",8.0,{}],["2016-05-12T08:22:41.000Z",8.1,{}],["2016-05-12T08:22:58.000Z",9.1,{}],["2016-05-12T08:23:11.000Z",5.4,{}],["2016-05-12T08:23:28.000Z",7.8999999999999995,{}],["2016-05-12T08:23:41.000Z",7.8999999999999995,{}],["2016-05-12T08:23:57.000Z",8.3,{}],["2016-05-12T08:24:11.000Z",6.0,{}],["2016-05-12T08:24:28.000Z",8.6,{}],["2016-05-12T08:24:41.000Z",7.4,{}],["2016-05-12T08:24:57.000Z",7.7,{}],["2016-05-12T08:25:11.000Z",7.1,{}],["2016-05-12T08:25:27.000Z",8.7,{}],["2016-05-12T08:25:41.000Z",6.5,{}],["2016-05-12T08:25:57.000Z",8.5,{}],["2016-05-12T08:26:11.000Z",8.3,{}],["2016-05-12T08:26:27.000Z",6.4,{}],["2016-05-12T08:26:41.000Z",9.299999999999999,{}],["2016-05-12T08:26:57.000Z",6.2,{}],["2016-05-12T08:27:11.000Z",9.7,{}],["2016-05-12T08:27:27.000Z",5.699999999999999,{}],["2016-05-12T08:27:41.000Z",9.1,{}],["2016-05-12T08:27:57.000Z",6.0,{}],["2016-05-12T08:28:11.000Z",10.0,{}],["2016-05-12T08:28:27.000Z",6.9,{}],["2016-05-12T08:28:41.000Z",10.9,{}],["2016-05-12T08:28:57.000Z",6.3,{}],["2016-05-12T08:29:11.000Z",8.3,{}],["2016-05-12T08:29:28.000Z",5.8,{}],["2016-05-12T08:29:41.000Z",7.199999999999999,{}],["2016-05-12T08:29:57.000Z",6.1,{}],["2016-05-12T08:30:11.000Z",9.7,{}],["2016-05-12T08:30:27.000Z",8.3,{}],["2016-05-12T08:30:41.000Z",9.4,{}],["2016-05-12T08:30:57.000Z",5.0,{}],["2016-05-12T08:31:11.000Z",8.6,{}],["2016-05-12T08:31:28.000Z",4.3,{}],["2016-05-12T08:31:41.000Z",9.4,{}],["2016-05-12T08:31:57.000Z",4.4,{}],["2016-05-12T08:32:11.000Z",10.0,{}],["2016-05-12T08:32:27.000Z",4.8,{}],["2016-05-12T08:32:41.000Z",9.8,{}],["2016-05-12T08:32:58.000Z",5.4,{}],["2016-05-12T08:33:11.000Z",9.9,{}],["2016-05-12T08:33:28.000Z",4.199999999999999,{}],["2016-05-12T08:33:41.000Z",10.1,{}],["2016-05-12T08:33:58.000Z",4.1,{}],["2016-05-12T08:34:11.000Z",6.3,{}],["2016-05-12T08:34:28.000Z",4.0,{}],["2016-05-12T08:34:41.000Z",7.9,{}],["2016-05-12T08:34:58.000Z",4.1,{}],["2016-05-12T08:35:11.000Z",6.4,{}],["2016-05-12T08:35:28.000Z",3.9,{}],["2016-05-12T08:35:41.000Z",7.3,{}],["2016-05-12T08:35:58.000Z",4.3,{}],["2016-05-12T08:36:11.000Z",6.4,{}],["2016-05-12T08:36:28.000Z",3.9,{}],["2016-05-12T08:36:41.000Z",7.6,{}],["2016-05-12T08:36:58.000Z",4.5,{}],["2016-05-12T08:37:11.000Z",7.199999999999999,{}],["2016-05-12T08:37:28.000Z",4.2,{}],["2016-05-12T08:37:41.000Z",6.8,{}],["2016-05-12T08:37:58.000Z",3.8,{}],["2016-05-12T08:38:11.000Z",7.1,{}],["2016-05-12T08:38:28.000Z",4.5,{}],["2016-05-12T08:38:41.000Z",8.2,{}],["2016-05-12T08:38:58.000Z",5.699999999999999,{}],["2016-05-12T08:39:11.000Z",7.5,{}],["2016-05-12T08:39:28.000Z",4.3,{}],["2016-05-12T08:39:41.000Z",6.1,{}],["2016-05-12T08:39:58.000Z",3.9,{}],["2016-05-12T08:40:11.000Z",5.6,{}],["2016-05-12T08:40:29.000Z",4.7,{}],["2016-05-12T08:40:42.000Z",7.8999999999999995,{}],["2016-05-12T08:40:59.000Z",4.199999999999999,{}],["2016-05-12T08:41:12.000Z",8.5,{}],["2016-05-12T08:41:28.000Z",4.1,{}],["2016-05-12T08:41:42.000Z",6.9,{}],["2016-05-12T08:41:58.000Z",4.0,{}],["2016-05-12T08:42:12.000Z",7.5,{}],["2016-05-12T08:42:29.000Z",4.199999999999999,{}],["2016-05-12T08:42:42.000Z",7.7,{}],["2016-05-12T08:42:58.000Z",4.199999999999999,{}],["2016-05-12T08:43:12.000Z",6.4,{}],["2016-05-12T08:43:28.000Z",4.1,{}],["2016-05-12T08:43:42.000Z",5.8999999999999995,{}],["2016-05-12T08:43:58.000Z",3.7,{}],["2016-05-12T08:44:12.000Z",7.7,{}],["2016-05-12T08:44:28.000Z",4.3,{}],["2016-05-12T08:44:42.000Z",7.5,{}],["2016-05-12T08:44:58.000Z",4.0,{}],["2016-05-12T08:45:12.000Z",8.8,{}],["2016-05-12T08:45:29.000Z",4.2,{}],["2016-05-12T08:45:42.000Z",8.0,{}],["2016-05-12T08:45:58.000Z",5.7,{}],["2016-05-12T08:46:12.000Z",8.6,{}],["2016-05-12T08:46:28.000Z",8.0,{}],["2016-05-12T08:46:42.000Z",9.8,{}],["2016-05-12T08:46:58.000Z",8.4,{}],["2016-05-12T08:47:12.000Z",12.9,{}],["2016-05-12T08:47:28.000Z",6.9,{}],["2016-05-12T08:47:42.000Z",10.2,{}],["2016-05-12T08:47:58.000Z",6.5,{}],["2016-05-12T08:48:12.000Z",9.5,{}],["2016-05-12T08:48:28.000Z",6.8,{}],["2016-05-12T08:48:42.000Z",8.5,{}],["2016-05-12T08:48:58.000Z",6.0,{}],["2016-05-12T08:49:12.000Z",8.5,{}],["2016-05-12T08:49:28.000Z",6.6,{}],["2016-05-12T08:49:42.000Z",8.0,{}],["2016-05-12T08:49:58.000Z",6.9,{}],["2016-05-12T08:50:12.000Z",9.5,{}],["2016-05-12T08:50:28.000Z",8.3,{}],["2016-05-12T08:50:42.000Z",9.0,{}],["2016-05-12T08:50:59.000Z",5.9,{}],["2016-05-12T08:51:12.000Z",5.7,{}],["2016-05-12T08:51:28.000Z",5.5,{}],["2016-05-12T08:51:42.000Z",8.4,{}],["2016-05-12T08:51:58.000Z",6.9,{}],["2016-05-12T08:52:12.000Z",7.3999999999999995,{}],["2016-05-12T08:52:28.000Z",6.1,{}],["2016-05-12T08:52:42.000Z",8.1,{}],["2016-05-12T08:52:58.000Z",6.5,{}],["2016-05-12T08:53:12.000Z",6.5,{}],["2016-05-12T08:53:28.000Z",7.8999999999999995,{}],["2016-05-12T08:53:42.000Z",7.8,{}],["2016-05-12T08:53:59.000Z",6.5,{}],["2016-05-12T08:54:12.000Z",6.8999999999999995,{}],["2016-05-12T08:54:28.000Z",6.2,{}],["2016-05-12T08:54:42.000Z",7.9,{}],["2016-05-12T08:54:58.000Z",4.6,{}],["2016-05-12T08:55:12.000Z",6.8,{}],["2016-05-12T08:55:28.000Z",6.0,{}],["2016-05-12T08:55:42.000Z",8.2,{}],["2016-05-12T08:55:58.000Z",4.8,{}],["2016-05-12T08:56:12.000Z",6.5,{}],["2016-05-12T08:56:28.000Z",5.6,{}],["2016-05-12T08:56:42.000Z",6.6,{}],["2016-05-12T08:56:58.000Z",5.0,{}],["2016-05-12T08:57:12.000Z",6.9,{}],["2016-05-12T08:57:28.000Z",6.8999999999999995,{}],["2016-05-12T08:57:42.000Z",7.3,{}],["2016-05-12T08:57:59.000Z",5.2,{}],["2016-05-12T08:58:12.000Z",7.5,{}],["2016-05-12T08:58:29.000Z",5.9,{}],["2016-05-12T08:58:42.000Z",7.9,{}],["2016-05-12T08:58:59.000Z",5.9,{}],["2016-05-12T08:59:12.000Z",5.8,{}],["2016-05-12T08:59:29.000Z",7.199999999999999,{}],["2016-05-12T08:59:42.000Z",6.8,{}],["2016-05-12T08:59:59.000Z",5.2,{}],["2016-05-12T09:00:12.000Z",7.7,{}],["2016-05-12T09:00:29.000Z",5.9,{}],["2016-05-12T09:00:42.000Z",8.6,{}],["2016-05-12T09:00:59.000Z",6.5,{}],["2016-05-12T09:01:13.000Z",6.199999999999999,{}],["2016-05-12T09:01:29.000Z",5.699999999999999,{}],["2016-05-12T09:01:43.000Z",7.3,{}],["2016-05-12T09:01:59.000Z",5.4,{}],["2016-05-12T09:02:13.000Z",5.6,{}],["2016-05-12T09:02:29.000Z",6.5,{}],["2016-05-12T09:02:43.000Z",8.6,{}],["2016-05-12T09:02:59.000Z",5.8999999999999995,{}],["2016-05-12T09:03:13.000Z",6.0,{}],["2016-05-12T09:03:29.000Z",5.0,{}],["2016-05-12T09:03:43.000Z",7.4,{}],["2016-05-12T09:03:59.000Z",5.6,{}],["2016-05-12T09:04:13.000Z",7.4,{}],["2016-05-12T09:04:29.000Z",5.3,{}],["2016-05-12T09:04:43.000Z",6.8,{}],["2016-05-12T09:04:59.000Z",5.8,{}],["2016-05-12T09:05:13.000Z",7.2,{}],["2016-05-12T09:05:29.000Z",6.3,{}],["2016-05-12T09:05:43.000Z",6.4,{}],["2016-05-12T09:05:59.000Z",6.7,{}],["2016-05-12T09:06:13.000Z",8.0,{}],["2016-05-12T09:06:29.000Z",6.4,{}],["2016-05-12T09:06:43.000Z",9.8,{}],["2016-05-12T09:06:59.000Z",9.299999999999999,{}],["2016-05-12T09:07:13.000Z",8.6,{}],["2016-05-12T09:07:30.000Z",8.0,{}],["2016-05-12T09:07:43.000Z",11.0,{}],["2016-05-12T09:08:00.000Z",6.9,{}],["2016-05-12T09:08:13.000Z",8.9,{}],["2016-05-12T09:08:29.000Z",6.9,{}],["2016-05-12T09:08:43.000Z",7.3,{}],["2016-05-12T09:08:59.000Z",6.1,{}],["2016-05-12T09:09:13.000Z",7.8999999999999995,{}],["2016-05-12T09:09:29.000Z",6.3,{}],["2016-05-12T09:09:43.000Z",8.1,{}],["2016-05-12T09:09:59.000Z",5.1,{}],["2016-05-12T09:10:13.000Z",7.3,{}],["2016-05-12T09:10:29.000Z",6.699999999999999,{}],["2016-05-12T09:10:43.000Z",7.7,{}],["2016-05-12T09:10:59.000Z",5.8,{}],["2016-05-12T09:11:13.000Z",7.1,{}],["2016-05-12T09:11:30.000Z",8.9,{}],["2016-05-12T09:11:43.000Z",3.1,{}],["2016-05-12T09:11:59.000Z",5.3,{}],["2016-05-12T09:12:13.000Z",2.3,{}],["2016-05-12T09:12:29.000Z",5.5,{}],["2016-05-12T09:12:43.000Z",2.8,{}],["2016-05-12T09:13:00.000Z",5.8999999999999995,{}],["2016-05-12T09:13:13.000Z",2.3,{}],["2016-05-12T09:13:30.000Z",5.6,{}],["2016-05-12T09:13:43.000Z",2.3,{}],["2016-05-12T09:14:00.000Z",10.2,{}],["2016-05-12T09:14:13.000Z",2.2,{}],["2016-05-12T09:14:29.000Z",6.5,{}],["2016-05-12T09:14:43.000Z",2.5,{}],["2016-05-12T09:14:59.000Z",5.0,{}],["2016-05-12T09:15:13.000Z",2.0,{}],["2016-05-12T09:15:29.000Z",5.1,{}],["2016-05-12T09:15:59.000Z",6.0,{}],["2016-05-12T09:16:13.000Z",6.3,{}],["2016-05-12T09:16:29.000Z",8.1,{}],["2016-05-12T09:16:43.000Z",7.1,{}],["2016-05-12T09:16:59.000Z",6.5,{}],["2016-05-12T09:17:14.000Z",6.0,{}],["2016-05-12T09:17:29.000Z",7.0,{}],["2016-05-12T09:17:43.000Z",7.2,{}],["2016-05-12T09:17:59.000Z",7.8,{}],["2016-05-12T09:18:13.000Z",8.1,{}],["2016-05-12T09:18:29.000Z",6.8,{}],["2016-05-12T09:18:43.000Z",7.6,{}],["2016-05-12T09:18:59.000Z",7.3999999999999995,{}],["2016-05-12T09:19:13.000Z",8.2,{}],["2016-05-12T09:19:29.000Z",10.7,{}],["2016-05-12T09:19:43.000Z",9.5,{}],["2016-05-12T09:19:59.000Z",9.7,{}],["2016-05-12T09:20:13.000Z",10.6,{}],["2016-05-12T09:20:29.000Z",9.2,{}],["2016-05-12T09:20:43.000Z",9.2,{}],["2016-05-12T09:20:59.000Z",8.799999999999999,{}],["2016-05-12T09:21:13.000Z",9.1,{}],["2016-05-12T09:21:29.000Z",9.2,{}],["2016-05-12T09:21:43.000Z",10.7,{}],["2016-05-12T09:21:59.000Z",10.2,{}],["2016-05-12T09:22:14.000Z",9.0,{}],["2016-05-12T09:22:30.000Z",9.0,{}],["2016-05-12T09:22:43.000Z",8.7,{}],["2016-05-12T09:23:00.000Z",8.1,{}],["2016-05-12T09:23:13.000Z",7.2,{}],["2016-05-12T09:23:30.000Z",7.0,{}],["2016-05-12T09:23:43.000Z",7.2,{}],["2016-05-12T09:24:00.000Z",7.4,{}],["2016-05-12T09:24:13.000Z",7.3,{}],["2016-05-12T09:24:30.000Z",8.2,{}],["2016-05-12T09:24:43.000Z",8.5,{}],["2016-05-12T09:25:00.000Z",7.7,{}],["2016-05-12T09:25:13.000Z",6.7,{}],["2016-05-12T09:25:30.000Z",6.1,{}],["2016-05-12T09:25:43.000Z",6.1,{}],["2016-05-12T09:26:00.000Z",5.7,{}],["2016-05-12T09:26:13.000Z",5.4,{}],["2016-05-12T09:26:30.000Z",6.199999999999999,{}],["2016-05-12T09:26:43.000Z",7.1,{}],["2016-05-12T09:27:00.000Z",6.5,{}],["2016-05-12T09:27:13.000Z",5.4,{}],["2016-05-12T09:27:30.000Z",5.6,{}],["2016-05-12T09:27:43.000Z",6.0,{}],["2016-05-12T09:28:00.000Z",6.8,{}],["2016-05-12T09:28:13.000Z",6.699999999999999,{}],["2016-05-12T09:28:30.000Z",6.4,{}],["2016-05-12T09:28:43.000Z",7.1,{}],["2016-05-12T09:29:00.000Z",6.9,{}],["2016-05-12T09:29:13.000Z",6.8,{}],["2016-05-12T09:29:30.000Z",6.8,{}],["2016-05-12T09:29:43.000Z",6.1,{}],["2016-05-12T09:30:01.000Z",5.8,{}],["2016-05-12T09:30:13.000Z",6.0,{}],["2016-05-12T09:30:30.000Z",6.199999999999999,{}],["2016-05-12T09:30:43.000Z",6.4,{}],["2016-05-12T09:31:00.000Z",6.8,{}],["2016-05-12T09:31:13.000Z",6.5,{}],["2016-05-12T09:31:30.000Z",6.3,{}],["2016-05-12T09:31:44.000Z",5.5,{}],["2016-05-12T09:32:00.000Z",4.8999999999999995,{}],["2016-05-12T09:32:13.000Z",5.0,{}],["2016-05-12T09:32:30.000Z",4.4,{}],["2016-05-12T09:32:43.000Z",4.8,{}],["2016-05-12T09:33:00.000Z",5.7,{}],["2016-05-12T09:33:15.000Z",5.1,{}],["2016-05-12T09:33:30.000Z",4.8999999999999995,{}],["2016-05-12T09:33:44.000Z",5.0,{}],["2016-05-12T09:34:00.000Z",4.4,{}],["2016-05-12T09:34:14.000Z",4.3,{}],["2016-05-12T09:34:30.000Z",4.4,{}],["2016-05-12T09:34:44.000Z",4.9,{}],["2016-05-12T09:35:00.000Z",6.8999999999999995,{}],["2016-05-12T09:35:14.000Z",7.6000000000000005,{}],["2016-05-12T09:35:30.000Z",7.3,{}],["2016-05-12T09:35:44.000Z",7.2,{}],["2016-05-12T09:36:00.000Z",6.7,{}],["2016-05-12T09:36:14.000Z",6.4,{}],["2016-05-12T09:36:30.000Z",5.3999999999999995,{}],["2016-05-12T09:36:44.000Z",5.5,{}],["2016-05-12T09:37:00.000Z",6.8999999999999995,{}],["2016-05-12T09:37:14.000Z",6.7,{}],["2016-05-12T09:37:30.000Z",6.2,{}],["2016-05-12T09:37:45.000Z",6.2,{}],["2016-05-12T09:38:00.000Z",6.2,{}],["2016-05-12T09:38:14.000Z",6.1,{}],["2016-05-12T09:38:30.000Z",5.4,{}],["2016-05-12T09:38:44.000Z",5.3,{}],["2016-05-12T09:39:00.000Z",5.199999999999999,{}],["2016-05-12T09:39:14.000Z",5.2,{}],["2016-05-12T09:39:30.000Z",5.8,{}],["2016-05-12T09:39:44.000Z",5.7,{}],["2016-05-12T09:40:00.000Z",5.0,{}],["2016-05-12T09:40:14.000Z",5.1,{}],["2016-05-12T09:40:30.000Z",6.0,{}],["2016-05-12T09:40:44.000Z",7.0,{}],["2016-05-12T09:41:01.000Z",6.199999999999999,{}],["2016-05-12T09:41:14.000Z",4.8,{}],["2016-05-12T09:41:31.000Z",4.7,{}],["2016-05-12T09:41:44.000Z",5.0,{}],["2016-05-12T09:42:00.000Z",5.7,{}],["2016-05-12T09:42:14.000Z",6.2,{}],["2016-05-12T09:42:44.000Z",4.8999999999999995,{}],["2016-05-12T09:43:14.000Z",4.5,{}],["2016-05-12T09:43:44.000Z",5.6,{}],["2016-05-12T09:44:15.000Z",4.3,{}],["2016-05-12T09:44:44.000Z",5.0,{}],["2016-05-12T09:45:14.000Z",5.9,{}],["2016-05-12T09:45:44.000Z",4.699999999999999,{}],["2016-05-12T09:46:14.000Z",4.2,{}],["2016-05-12T09:46:44.000Z",5.4,{}],["2016-05-12T09:47:14.000Z",5.2,{}],["2016-05-12T09:47:44.000Z",5.1000000000000005,{}],["2016-05-12T09:48:14.000Z",5.0,{}],["2016-05-12T09:48:44.000Z",4.1,{}],["2016-05-12T09:49:14.000Z",4.699999999999999,{}],["2016-05-12T09:49:44.000Z",4.4,{}],["2016-05-12T09:50:15.000Z",4.3,{}],["2016-05-12T09:50:44.000Z",3.8,{}],["2016-05-12T09:51:15.000Z",3.3000000000000003,{}],["2016-05-12T09:51:45.000Z",3.5,{}],["2016-05-12T09:52:15.000Z",2.9,{}],["2016-05-12T09:52:45.000Z",4.1,{}],["2016-05-12T09:53:15.000Z",2.7,{}],["2016-05-12T09:53:45.000Z",3.5,{}],["2016-05-12T09:54:15.000Z",3.3,{}],["2016-05-12T09:54:45.000Z",5.2,{}],["2016-05-12T09:55:15.000Z",5.6,{}],["2016-05-12T09:55:45.000Z",4.0,{}],["2016-05-12T09:56:15.000Z",4.199999999999999,{}],["2016-05-12T09:56:45.000Z",6.3,{}],["2016-05-12T09:57:15.000Z",7.5,{}],["2016-05-12T09:57:45.000Z",3.8,{}],["2016-05-12T09:58:15.000Z",4.9,{}],["2016-05-12T09:58:45.000Z",3.9,{}],["2016-05-12T09:59:15.000Z",2.9,{}],["2016-05-12T09:59:45.000Z",4.8,{}],["2016-05-12T10:00:15.000Z",3.5,{}],["2016-05-12T10:00:45.000Z",3.9,{}],["2016-05-12T10:01:15.000Z",3.0,{}],["2016-05-12T10:01:45.000Z",3.7,{}],["2016-05-12T10:02:15.000Z",3.7,{}],["2016-05-12T10:02:45.000Z",4.7,{}],["2016-05-12T10:03:15.000Z",3.8,{}],["2016-05-12T10:03:45.000Z",4.5,{}],["2016-05-12T10:04:15.000Z",3.5,{}],["2016-05-12T10:04:45.000Z",3.8,{}],["2016-05-12T10:05:15.000Z",3.5,{}],["2016-05-12T10:05:45.000Z",3.7,{}],["2016-05-12T10:06:15.000Z",3.8000000000000003,{}],["2016-05-12T10:06:45.000Z",4.1,{}],["2016-05-12T10:07:15.000Z",3.2,{}],["2016-05-12T10:07:45.000Z",3.5,{}],["2016-05-12T10:08:15.000Z",3.2,{}],["2016-05-12T10:08:46.000Z",3.9,{}],["2016-05-12T10:09:16.000Z",3.9,{}],["2016-05-12T10:09:46.000Z",3.4,{}],["2016-05-12T10:10:16.000Z",5.4,{}],["2016-05-12T10:10:46.000Z",3.8000000000000003,{}],["2016-05-12T10:11:16.000Z",5.2,{}],["2016-05-12T10:11:46.000Z",4.7,{}],["2016-05-12T10:12:16.000Z",4.3,{}],["2016-05-12T10:12:46.000Z",4.1,{}],["2016-05-12T10:13:16.000Z",3.7,{}],["2016-05-12T10:13:46.000Z",3.5,{}],["2016-05-12T10:14:16.000Z",3.5,{}],["2016-05-12T10:14:46.000Z",3.9,{}],["2016-05-12T10:15:16.000Z",3.5,{}],["2016-05-12T10:15:46.000Z",3.5,{}],["2016-05-12T10:16:16.000Z",3.5,{}],["2016-05-12T10:16:46.000Z",4.6,{}],["2016-05-12T10:17:16.000Z",4.1,{}],["2016-05-12T10:17:46.000Z",4.9,{}],["2016-05-12T10:18:16.000Z",3.2,{}],["2016-05-12T10:18:46.000Z",5.0,{}],["2016-05-12T10:19:16.000Z",3.9,{}],["2016-05-12T10:19:46.000Z",3.8,{}],["2016-05-12T10:20:16.000Z",3.3,{}],["2016-05-12T10:20:46.000Z",3.9,{}],["2016-05-12T11:15:33.000Z",4.6,{}],["2016-05-12T11:16:03.000Z",2.6,{}],["2016-05-12T11:16:33.000Z",2.5,{}],["2016-05-12T11:17:03.000Z",2.2,{}],["2016-05-12T11:17:33.000Z",2.6,{}],["2016-05-12T11:18:03.000Z",2.5,{}],["2016-05-12T11:18:33.000Z",2.1,{}],["2016-05-12T11:19:03.000Z",3.2,{}],["2016-05-12T11:19:33.000Z",4.3,{}],["2016-05-12T11:20:03.000Z",5.5,{}],["2016-05-12T11:20:34.000Z",3.4000000000000004,{}],["2016-05-12T11:28:39.000Z",5.2,{}],["2016-05-12T11:29:09.000Z",5.0,{}],["2016-05-12T11:29:39.000Z",3.4,{}],["2016-05-12T11:30:09.000Z",4.0,{}],["2016-05-12T11:30:40.000Z",8.299999999999999,{}],["2016-05-12T11:30:51.000Z",7.8999999999999995,{}],["2016-05-12T11:31:03.000Z",5.2,{}],["2016-05-12T11:31:10.000Z",5.1000000000000005,{}],["2016-05-12T11:31:21.000Z",7.3,{}],["2016-05-12T11:31:33.000Z",4.8,{}],["2016-05-12T11:31:40.000Z",6.1000000000000005,{}],["2016-05-12T11:31:51.000Z",5.3,{}],["2016-05-12T11:31:57.000Z",4.9,{}],["2016-05-12T11:32:03.000Z",7.5,{}],["2016-05-12T11:32:10.000Z",6.5,{}],["2016-05-12T11:32:21.000Z",5.9,{}],["2016-05-12T11:32:27.000Z",5.6000000000000005,{}],["2016-05-12T11:32:33.000Z",6.4,{}],["2016-05-12T11:32:40.000Z",6.9,{}],["2016-05-12T11:32:51.000Z",5.5,{}],["2016-05-12T11:32:57.000Z",5.1,{}],["2016-05-12T11:33:03.000Z",6.1000000000000005,{}],["2016-05-12T11:33:10.000Z",5.2,{}],["2016-05-12T11:33:21.000Z",3.5,{}],["2016-05-12T11:33:27.000Z",3.5,{}],["2016-05-12T11:33:33.000Z",5.0,{}],["2016-05-12T11:33:40.000Z",5.0,{}],["2016-05-12T11:33:51.000Z",3.3000000000000003,{}],["2016-05-12T11:33:57.000Z",3.2,{}],["2016-05-12T11:34:04.000Z",4.9,{}],["2016-05-12T11:34:10.000Z",4.9,{}],["2016-05-12T11:34:21.000Z",3.2,{}],["2016-05-12T11:34:27.000Z",3.5,{}],["2016-05-12T11:34:34.000Z",4.6000000000000005,{}],["2016-05-12T11:34:40.000Z",4.5,{}],["2016-05-12T11:34:51.000Z",3.8000000000000003,{}],["2016-05-12T11:34:57.000Z",3.6,{}],["2016-05-12T11:35:04.000Z",4.3999999999999995,{}],["2016-05-12T11:35:10.000Z",4.3999999999999995,{}],["2016-05-12T11:35:21.000Z",3.2,{}],["2016-05-12T11:35:27.000Z",3.2,{}],["2016-05-12T11:35:34.000Z",4.6,{}],["2016-05-12T11:35:40.000Z",4.5,{}],["2016-05-12T11:35:51.000Z",3.2,{}],["2016-05-12T11:35:57.000Z",3.2,{}],["2016-05-12T11:36:04.000Z",4.5,{}],["2016-05-12T11:36:10.000Z",4.5,{}],["2016-05-12T11:36:21.000Z",2.9000000000000004,{}],["2016-05-12T11:36:27.000Z",3.0,{}],["2016-05-12T11:36:34.000Z",4.5,{}],["2016-05-12T11:36:40.000Z",4.5,{}],["2016-05-12T11:36:51.000Z",3.5,{}],["2016-05-12T11:36:57.000Z",3.5,{}],["2016-05-12T11:37:04.000Z",6.3,{}],["2016-05-12T11:37:10.000Z",7.7,{}],["2016-05-12T11:37:21.000Z",2.5,{}],["2016-05-12T11:37:27.000Z",2.5,{}],["2016-05-12T11:37:34.000Z",5.8,{}],["2016-05-12T11:37:40.000Z",4.4,{}],["2016-05-12T11:37:51.000Z",2.9000000000000004,{}],["2016-05-12T11:37:57.000Z",2.9000000000000004,{}],["2016-05-12T11:38:04.000Z",4.4,{}],["2016-05-12T11:38:10.000Z",4.4,{}],["2016-05-12T11:38:21.000Z",2.5,{}],["2016-05-12T11:38:27.000Z",2.5,{}],["2016-05-12T11:38:34.000Z",4.5,{}],["2016-05-12T11:38:40.000Z",4.3999999999999995,{}],["2016-05-12T11:38:51.000Z",3.5,{}],["2016-05-12T11:38:57.000Z",3.5,{}],["2016-05-12T11:39:04.000Z",4.199999999999999,{}],["2016-05-12T11:39:10.000Z",5.1,{}],["2016-05-12T11:39:21.000Z",2.7,{}],["2016-05-12T11:39:27.000Z",2.8000000000000003,{}],["2016-05-12T11:39:34.000Z",5.4,{}],["2016-05-12T11:39:40.000Z",4.6000000000000005,{}],["2016-05-12T11:39:51.000Z",2.9000000000000004,{}],["2016-05-12T11:39:57.000Z",2.9000000000000004,{}],["2016-05-12T11:40:04.000Z",4.199999999999999,{}],["2016-05-12T11:40:10.000Z",4.199999999999999,{}],["2016-05-12T11:40:21.000Z",2.7,{}],["2016-05-12T11:40:27.000Z",2.8,{}],["2016-05-12T11:40:34.000Z",4.5,{}],["2016-05-12T11:40:40.000Z",4.5,{}],["2016-05-12T11:40:51.000Z",3.3000000000000003,{}],["2016-05-12T11:40:57.000Z",3.4000000000000004,{}],["2016-05-12T11:41:04.000Z",4.3,{}],["2016-05-12T11:41:10.000Z",5.1,{}],["2016-05-12T11:41:21.000Z",2.8000000000000003,{}],["2016-05-12T11:41:27.000Z",2.6,{}],["2016-05-12T11:41:34.000Z",5.3,{}],["2016-05-12T11:41:40.000Z",4.3999999999999995,{}],["2016-05-12T11:41:51.000Z",2.8000000000000003,{}],["2016-05-12T11:41:57.000Z",2.9000000000000004,{}],["2016-05-12T11:42:04.000Z",4.199999999999999,{}],["2016-05-12T11:42:10.000Z",4.3,{}],["2016-05-12T11:42:21.000Z",2.6999999999999997,{}],["2016-05-12T11:42:27.000Z",2.5999999999999996,{}],["2016-05-12T11:42:34.000Z",4.6000000000000005,{}],["2016-05-12T11:42:40.000Z",4.5,{}],["2016-05-12T11:42:51.000Z",2.8000000000000003,{}],["2016-05-12T11:42:57.000Z",3.0,{}],["2016-05-12T11:43:04.000Z",4.1,{}],["2016-05-12T11:43:10.000Z",4.8999999999999995,{}],["2016-05-12T11:43:21.000Z",2.7,{}],["2016-05-12T11:43:27.000Z",2.6,{}],["2016-05-12T11:43:34.000Z",5.3,{}],["2016-05-12T11:43:40.000Z",4.5,{}],["2016-05-12T11:43:51.000Z",2.8,{}],["2016-05-12T11:43:57.000Z",2.9,{}],["2016-05-12T11:44:04.000Z",4.3,{}],["2016-05-12T11:44:10.000Z",4.4,{}],["2016-05-12T11:44:21.000Z",2.7,{}],["2016-05-12T11:44:27.000Z",2.7,{}],["2016-05-12T11:44:34.000Z",4.5,{}],["2016-05-12T11:44:40.000Z",4.5,{}],["2016-05-12T11:44:51.000Z",3.0,{}],["2016-05-12T11:44:57.000Z",3.1,{}],["2016-05-12T11:45:04.000Z",5.2,{}],["2016-05-12T11:45:10.000Z",6.5,{}],["2016-05-12T11:45:21.000Z",2.6,{}],["2016-05-12T11:45:27.000Z",2.7,{}],["2016-05-12T11:45:34.000Z",5.9,{}],["2016-05-12T11:45:40.000Z",4.5,{}],["2016-05-12T11:45:51.000Z",2.9000000000000004,{}],["2016-05-12T11:45:57.000Z",2.8000000000000003,{}],["2016-05-12T11:46:04.000Z",4.3,{}],["2016-05-12T11:46:10.000Z",4.4,{}],["2016-05-12T11:46:21.000Z",3.4,{}],["2016-05-12T11:46:27.000Z",3.3,{}],["2016-05-12T11:46:34.000Z",4.3999999999999995,{}],["2016-05-12T11:46:40.000Z",4.3999999999999995,{}],["2016-05-12T11:46:51.000Z",3.8000000000000003,{}],["2016-05-12T11:46:57.000Z",3.9000000000000004,{}],["2016-05-12T11:47:04.000Z",4.4,{}],["2016-05-12T11:47:10.000Z",4.7,{}],["2016-05-12T11:47:21.000Z",3.0,{}],["2016-05-12T11:47:27.000Z",2.8000000000000003,{}],["2016-05-12T11:47:34.000Z",5.0,{}],["2016-05-12T11:47:40.000Z",4.6000000000000005,{}],["2016-05-12T11:47:51.000Z",3.0,{}],["2016-05-12T11:47:57.000Z",3.2,{}],["2016-05-12T11:48:04.000Z",4.6000000000000005,{}],["2016-05-12T11:48:10.000Z",4.6000000000000005,{}],["2016-05-12T11:48:21.000Z",3.2,{}],["2016-05-12T11:48:27.000Z",3.0,{}],["2016-05-12T11:48:34.000Z",4.7,{}],["2016-05-12T11:48:40.000Z",5.0,{}],["2016-05-12T11:48:51.000Z",2.9000000000000004,{}],["2016-05-12T11:48:57.000Z",2.9000000000000004,{}],["2016-05-12T11:49:04.000Z",5.8,{}],["2016-05-12T11:49:10.000Z",6.2,{}],["2016-05-12T11:49:21.000Z",2.7,{}],["2016-05-12T11:49:27.000Z",2.6,{}],["2016-05-12T11:49:34.000Z",5.4,{}],["2016-05-12T11:49:40.000Z",4.6000000000000005,{}],["2016-05-12T11:49:51.000Z",2.7,{}],["2016-05-12T11:49:58.000Z",2.8000000000000003,{}],["2016-05-12T11:50:04.000Z",4.5,{}],["2016-05-12T11:50:10.000Z",4.5,{}],["2016-05-12T11:50:22.000Z",3.1,{}],["2016-05-12T11:50:28.000Z",3.3000000000000003,{}],["2016-05-12T11:50:34.000Z",4.7,{}],["2016-05-12T11:50:40.000Z",4.7,{}],["2016-05-12T11:50:52.000Z",3.0999999999999996,{}],["2016-05-12T11:50:58.000Z",3.0,{}],["2016-05-12T11:51:04.000Z",4.5,{}],["2016-05-12T11:51:10.000Z",5.2,{}],["2016-05-12T11:51:22.000Z",2.9000000000000004,{}],["2016-05-12T11:51:28.000Z",3.0,{}],["2016-05-12T11:51:34.000Z",5.4,{}],["2016-05-12T11:51:40.000Z",4.8,{}],["2016-05-12T11:51:52.000Z",3.0,{}],["2016-05-12T11:51:58.000Z",3.0,{}],["2016-05-12T11:52:04.000Z",4.7,{}],["2016-05-12T11:52:10.000Z",4.7,{}],["2016-05-12T11:52:22.000Z",3.0,{}],["2016-05-12T11:52:28.000Z",3.0,{}],["2016-05-12T11:52:34.000Z",4.7,{}],["2016-05-12T11:52:40.000Z",4.7,{}],["2016-05-12T11:52:52.000Z",3.2,{}],["2016-05-12T11:52:58.000Z",3.2,{}],["2016-05-12T11:53:04.000Z",4.3999999999999995,{}],["2016-05-12T11:53:10.000Z",5.0,{}],["2016-05-12T11:53:22.000Z",2.8000000000000003,{}],["2016-05-12T11:53:28.000Z",2.7,{}],["2016-05-12T11:53:34.000Z",5.2,{}],["2016-05-12T11:53:40.000Z",4.6000000000000005,{}],["2016-05-12T11:53:52.000Z",3.2,{}],["2016-05-12T11:53:58.000Z",3.1,{}],["2016-05-12T11:54:04.000Z",4.5,{}],["2016-05-12T11:54:10.000Z",4.5,{}],["2016-05-12T11:54:22.000Z",2.9000000000000004,{}],["2016-05-12T11:54:28.000Z",2.9000000000000004,{}],["2016-05-12T11:54:34.000Z",4.3999999999999995,{}],["2016-05-12T11:54:40.000Z",4.3999999999999995,{}],["2016-05-12T11:54:52.000Z",3.0,{}],["2016-05-12T11:54:58.000Z",3.0,{}],["2016-05-12T11:55:04.000Z",4.5,{}],["2016-05-12T11:55:10.000Z",4.6,{}],["2016-05-12T11:55:22.000Z",2.9,{}],["2016-05-12T11:55:28.000Z",2.8000000000000003,{}],["2016-05-12T11:55:34.000Z",4.7,{}],["2016-05-12T11:55:40.000Z",4.6000000000000005,{}],["2016-05-12T11:55:52.000Z",2.9000000000000004,{}],["2016-05-12T11:55:58.000Z",3.0,{}],["2016-05-12T11:56:04.000Z",4.3999999999999995,{}],["2016-05-12T11:56:11.000Z",4.5,{}],["2016-05-12T11:56:22.000Z",4.4,{}],["2016-05-12T11:56:28.000Z",5.3,{}],["2016-05-12T11:56:34.000Z",4.5,{}],["2016-05-12T11:56:41.000Z",4.5,{}],["2016-05-12T11:56:52.000Z",3.9000000000000004,{}],["2016-05-12T11:56:58.000Z",3.0,{}],["2016-05-12T11:57:05.000Z",4.5,{}],["2016-05-12T11:57:11.000Z",4.7,{}],["2016-05-12T11:57:22.000Z",3.0,{}],["2016-05-12T11:57:28.000Z",3.0999999999999996,{}],["2016-05-12T11:57:35.000Z",4.9,{}],["2016-05-12T11:57:41.000Z",4.8,{}],["2016-05-12T11:57:52.000Z",3.3000000000000003,{}],["2016-05-12T11:57:58.000Z",3.2,{}],["2016-05-12T11:58:05.000Z",4.6000000000000005,{}],["2016-05-12T11:58:11.000Z",4.5,{}],["2016-05-12T11:58:22.000Z",2.8000000000000003,{}],["2016-05-12T11:58:28.000Z",3.1,{}],["2016-05-12T11:58:35.000Z",4.6000000000000005,{}],["2016-05-12T11:58:41.000Z",4.7,{}],["2016-05-12T11:58:52.000Z",3.4000000000000004,{}],["2016-05-12T11:58:58.000Z",3.1,{}],["2016-05-12T11:59:05.000Z",4.6000000000000005,{}],["2016-05-12T11:59:11.000Z",4.9,{}],["2016-05-12T11:59:22.000Z",2.9000000000000004,{}],["2016-05-12T11:59:28.000Z",2.8000000000000003,{}],["2016-05-12T11:59:35.000Z",4.9,{}],["2016-05-12T11:59:41.000Z",4.6000000000000005,{}],["2016-05-12T11:59:52.000Z",3.0,{}],["2016-05-12T11:59:58.000Z",3.2,{}],["2016-05-12T12:00:05.000Z",4.7,{}],["2016-05-12T12:00:11.000Z",4.6000000000000005,{}],["2016-05-12T12:00:22.000Z",3.0,{}],["2016-05-12T12:00:28.000Z",3.0,{}],["2016-05-12T12:00:35.000Z",4.5,{}],["2016-05-12T12:00:41.000Z",4.6000000000000005,{}],["2016-05-12T12:00:52.000Z",3.3000000000000003,{}],["2016-05-12T12:00:58.000Z",3.3000000000000003,{}],["2016-05-12T12:01:05.000Z",4.3999999999999995,{}],["2016-05-12T12:01:11.000Z",4.3999999999999995,{}],["2016-05-12T12:01:22.000Z",3.0,{}],["2016-05-12T12:01:28.000Z",2.8000000000000003,{}],["2016-05-12T12:01:35.000Z",4.699999999999999,{}],["2016-05-12T12:01:41.000Z",4.699999999999999,{}],["2016-05-12T12:01:52.000Z",3.0999999999999996,{}],["2016-05-12T12:01:58.000Z",3.3,{}],["2016-05-12T12:02:05.000Z",4.5,{}],["2016-05-12T12:02:11.000Z",4.5,{}],["2016-05-12T12:02:22.000Z",3.2,{}],["2016-05-12T12:02:28.000Z",3.3000000000000003,{}],["2016-05-12T12:02:35.000Z",4.6000000000000005,{}],["2016-05-12T12:02:41.000Z",4.6000000000000005,{}],["2016-05-12T12:02:52.000Z",3.1,{}],["2016-05-12T12:02:58.000Z",2.9000000000000004,{}],["2016-05-12T12:03:05.000Z",4.7,{}],["2016-05-12T12:03:11.000Z",5.9,{}],["2016-05-12T12:03:22.000Z",3.0,{}],["2016-05-12T12:03:28.000Z",2.9,{}],["2016-05-12T12:03:35.000Z",6.8,{}],["2016-05-12T12:03:41.000Z",5.6000000000000005,{}],["2016-05-12T12:03:52.000Z",3.0,{}],["2016-05-12T12:03:58.000Z",3.1,{}],["2016-05-12T12:04:05.000Z",4.6000000000000005,{}],["2016-05-12T12:04:11.000Z",4.6000000000000005,{}],["2016-05-12T12:04:22.000Z",3.0,{}],["2016-05-12T12:04:28.000Z",3.3000000000000003,{}],["2016-05-12T12:04:35.000Z",4.3999999999999995,{}],["2016-05-12T12:04:41.000Z",4.3999999999999995,{}],["2016-05-12T12:04:52.000Z",4.9,{}],["2016-05-12T12:04:58.000Z",4.7,{}],["2016-05-12T12:05:05.000Z",4.3999999999999995,{}],["2016-05-12T12:05:11.000Z",4.8,{}],["2016-05-12T12:05:22.000Z",3.2,{}],["2016-05-12T12:05:28.000Z",4.5,{}],["2016-05-12T12:05:35.000Z",5.7,{}],["2016-05-12T12:05:41.000Z",5.3,{}],["2016-05-12T12:05:52.000Z",5.5,{}],["2016-05-12T12:05:58.000Z",5.5,{}],["2016-05-12T12:06:05.000Z",4.7,{}],["2016-05-12T12:06:11.000Z",4.8,{}],["2016-05-12T12:06:22.000Z",7.6000000000000005,{}],["2016-05-12T12:06:28.000Z",6.1000000000000005,{}],["2016-05-12T12:06:35.000Z",4.6,{}],["2016-05-12T12:06:41.000Z",4.6,{}],["2016-05-12T12:06:52.000Z",3.2,{}],["2016-05-12T12:06:58.000Z",3.2,{}],["2016-05-12T12:07:05.000Z",4.6000000000000005,{}],["2016-05-12T12:07:11.000Z",4.6000000000000005,{}],["2016-05-12T12:07:22.000Z",2.8000000000000003,{}],["2016-05-12T12:07:28.000Z",2.8000000000000003,{}],["2016-05-12T12:07:35.000Z",5.1000000000000005,{}],["2016-05-12T12:07:41.000Z",5.1000000000000005,{}],["2016-05-12T12:07:52.000Z",3.5,{}],["2016-05-12T12:07:58.000Z",3.4000000000000004,{}],["2016-05-12T12:08:05.000Z",4.3999999999999995,{}],["2016-05-12T12:08:11.000Z",4.3999999999999995,{}],["2016-05-12T12:08:22.000Z",4.0,{}],["2016-05-12T12:08:28.000Z",6.0,{}],["2016-05-12T12:08:35.000Z",4.6000000000000005,{}],["2016-05-12T12:08:41.000Z",4.7,{}],["2016-05-12T12:08:52.000Z",6.4,{}],["2016-05-12T12:08:58.000Z",4.6000000000000005,{}],["2016-05-12T12:09:05.000Z",4.6000000000000005,{}],["2016-05-12T12:09:11.000Z",4.7,{}],["2016-05-12T12:09:22.000Z",3.5,{}],["2016-05-12T12:09:28.000Z",3.5,{}],["2016-05-12T12:09:35.000Z",5.2,{}],["2016-05-12T12:09:41.000Z",5.2,{}],["2016-05-12T12:09:52.000Z",3.1,{}],["2016-05-12T12:09:58.000Z",3.0,{}],["2016-05-12T12:10:05.000Z",4.5,{}],["2016-05-12T12:10:11.000Z",4.5,{}],["2016-05-12T12:10:22.000Z",3.5,{}],["2016-05-12T12:10:28.000Z",3.4000000000000004,{}],["2016-05-12T12:10:35.000Z",4.6000000000000005,{}],["2016-05-12T12:10:41.000Z",4.6000000000000005,{}],["2016-05-12T12:10:52.000Z",3.0,{}],["2016-05-12T12:10:58.000Z",3.0,{}],["2016-05-12T12:11:05.000Z",4.5,{}],["2016-05-12T12:11:11.000Z",4.5,{}],["2016-05-12T12:11:22.000Z",4.1,{}],["2016-05-12T12:11:29.000Z",4.1,{}],["2016-05-12T12:11:35.000Z",4.8999999999999995,{}],["2016-05-12T12:11:41.000Z",4.8999999999999995,{}],["2016-05-12T12:11:52.000Z",2.9000000000000004,{}],["2016-05-12T12:11:59.000Z",2.7,{}],["2016-05-12T12:12:05.000Z",4.5,{}],["2016-05-12T12:12:11.000Z",4.5,{}],["2016-05-12T12:12:22.000Z",3.3,{}],["2016-05-12T12:12:29.000Z",3.4,{}],["2016-05-12T12:12:35.000Z",4.7,{}],["2016-05-12T12:12:41.000Z",4.8,{}],["2016-05-12T12:12:52.000Z",2.7,{}],["2016-05-12T12:12:59.000Z",3.3000000000000003,{}],["2016-05-12T12:13:05.000Z",4.8,{}],["2016-05-12T12:13:11.000Z",4.7,{}],["2016-05-12T12:13:23.000Z",3.3000000000000003,{}],["2016-05-12T12:13:29.000Z",2.6,{}],["2016-05-12T12:13:35.000Z",4.8,{}],["2016-05-12T12:13:41.000Z",4.8,{}],["2016-05-12T12:13:53.000Z",3.5,{}],["2016-05-12T12:13:59.000Z",3.9000000000000004,{}],["2016-05-12T12:14:05.000Z",4.7,{}],["2016-05-12T12:14:11.000Z",4.7,{}],["2016-05-12T12:14:23.000Z",3.0,{}],["2016-05-12T12:14:29.000Z",2.4000000000000004,{}],["2016-05-12T12:14:35.000Z",4.5,{}],["2016-05-12T12:14:41.000Z",4.3999999999999995,{}],["2016-05-12T12:14:53.000Z",2.4000000000000004,{}],["2016-05-12T12:14:59.000Z",2.5,{}],["2016-05-12T12:15:05.000Z",4.5,{}],["2016-05-12T12:15:11.000Z",4.5,{}],["2016-05-12T12:15:23.000Z",2.2,{}],["2016-05-12T12:15:29.000Z",2.3000000000000003,{}],["2016-05-12T12:15:35.000Z",4.7,{}],["2016-05-12T12:15:41.000Z",4.6000000000000005,{}],["2016-05-12T12:15:53.000Z",2.0,{}],["2016-05-12T12:15:59.000Z",2.3000000000000003,{}],["2016-05-12T12:16:05.000Z",4.6000000000000005,{}],["2016-05-12T12:16:11.000Z",4.6000000000000005,{}],["2016-05-12T12:16:23.000Z",2.6,{}],["2016-05-12T12:16:29.000Z",2.3000000000000003,{}],["2016-05-12T12:16:35.000Z",4.6000000000000005,{}],["2016-05-12T12:16:41.000Z",4.6000000000000005,{}],["2016-05-12T12:16:53.000Z",2.4000000000000004,{}],["2016-05-12T12:16:59.000Z",2.4000000000000004,{}],["2016-05-12T12:17:05.000Z",4.6000000000000005,{}],["2016-05-12T12:17:11.000Z",4.6000000000000005,{}],["2016-05-12T12:17:23.000Z",2.3000000000000003,{}],["2016-05-12T12:17:29.000Z",2.4000000000000004,{}],["2016-05-12T12:17:36.000Z",4.7,{}],["2016-05-12T12:17:41.000Z",4.6,{}],["2016-05-12T12:17:53.000Z",2.5,{}],["2016-05-12T12:17:59.000Z",2.8000000000000003,{}],["2016-05-12T12:18:06.000Z",4.3999999999999995,{}],["2016-05-12T12:18:11.000Z",4.3,{}],["2016-05-12T12:18:23.000Z",2.8000000000000003,{}],["2016-05-12T12:18:29.000Z",2.5,{}],["2016-05-12T12:18:36.000Z",4.5,{}],["2016-05-12T12:18:41.000Z",4.5,{}],["2016-05-12T12:18:53.000Z",2.3000000000000003,{}],["2016-05-12T12:18:59.000Z",2.4000000000000004,{}],["2016-05-12T12:19:06.000Z",4.4,{}],["2016-05-12T12:19:11.000Z",4.5,{}],["2016-05-12T12:19:23.000Z",2.2,{}],["2016-05-12T12:19:29.000Z",2.3000000000000003,{}],["2016-05-12T12:19:36.000Z",4.6,{}],["2016-05-12T12:19:41.000Z",4.8,{}],["2016-05-12T12:19:53.000Z",2.2,{}],["2016-05-12T12:19:59.000Z",2.2,{}],["2016-05-12T12:20:06.000Z",4.5,{}],["2016-05-12T12:20:11.000Z",4.6000000000000005,{}],["2016-05-12T12:20:23.000Z",2.7,{}],["2016-05-12T12:20:29.000Z",2.6,{}],["2016-05-12T12:20:36.000Z",4.6000000000000005,{}],["2016-05-12T12:20:41.000Z",4.5,{}],["2016-05-12T12:20:53.000Z",2.2,{}],["2016-05-12T12:20:59.000Z",2.2,{}],["2016-05-12T12:21:06.000Z",4.5,{}],["2016-05-12T12:21:12.000Z",4.5,{}],["2016-05-12T12:21:23.000Z",2.4000000000000004,{}],["2016-05-12T12:21:29.000Z",2.4000000000000004,{}],["2016-05-12T12:21:36.000Z",4.9,{}],["2016-05-12T12:21:42.000Z",4.9,{}],["2016-05-12T12:21:53.000Z",2.2,{}],["2016-05-12T12:21:59.000Z",2.2,{}],["2016-05-12T12:22:06.000Z",4.5,{}],["2016-05-12T12:22:12.000Z",4.5,{}],["2016-05-12T12:22:23.000Z",5.5,{}],["2016-05-12T12:22:29.000Z",5.4,{}],["2016-05-12T12:22:36.000Z",4.5,{}],["2016-05-12T12:22:42.000Z",4.5,{}],["2016-05-12T12:22:53.000Z",2.1,{}],["2016-05-12T12:22:59.000Z",2.0,{}],["2016-05-12T12:23:06.000Z",4.4,{}],["2016-05-12T12:23:12.000Z",4.4,{}],["2016-05-12T12:23:23.000Z",2.2,{}],["2016-05-12T12:23:29.000Z",2.3000000000000003,{}],["2016-05-12T12:23:36.000Z",4.5,{}],["2016-05-12T12:23:42.000Z",4.6000000000000005,{}],["2016-05-12T12:23:53.000Z",2.2,{}],["2016-05-12T12:23:59.000Z",2.2,{}],["2016-05-12T12:24:06.000Z",4.4,{}],["2016-05-12T12:24:12.000Z",4.4,{}],["2016-05-12T12:24:23.000Z",2.6,{}],["2016-05-12T12:24:29.000Z",2.7,{}],["2016-05-12T12:24:36.000Z",4.6000000000000005,{}],["2016-05-12T12:24:42.000Z",4.6000000000000005,{}],["2016-05-12T12:24:53.000Z",2.3000000000000003,{}],["2016-05-12T12:24:59.000Z",2.2,{}],["2016-05-12T12:25:06.000Z",4.7,{}],["2016-05-12T12:25:12.000Z",4.7,{}],["2016-05-12T12:25:23.000Z",2.4000000000000004,{}],["2016-05-12T12:25:29.000Z",2.3000000000000003,{}],["2016-05-12T12:25:36.000Z",5.2,{}],["2016-05-12T12:25:42.000Z",5.2,{}],["2016-05-12T12:25:53.000Z",2.3000000000000003,{}],["2016-05-12T12:25:59.000Z",2.4000000000000004,{}],["2016-05-12T12:26:06.000Z",4.7,{}],["2016-05-12T12:26:12.000Z",4.6000000000000005,{}],["2016-05-12T12:26:23.000Z",2.6,{}],["2016-05-12T12:26:29.000Z",2.7,{}],["2016-05-12T12:26:36.000Z",4.6000000000000005,{}],["2016-05-12T12:26:42.000Z",4.6000000000000005,{}],["2016-05-12T12:26:53.000Z",2.4000000000000004,{}],["2016-05-12T12:26:59.000Z",2.3000000000000003,{}],["2016-05-12T12:27:06.000Z",4.7,{}],["2016-05-12T12:27:12.000Z",4.6000000000000005,{}],["2016-05-12T12:27:23.000Z",2.2,{}],["2016-05-12T12:27:29.000Z",2.4000000000000004,{}],["2016-05-12T12:27:36.000Z",5.6000000000000005,{}],["2016-05-12T12:27:42.000Z",5.7,{}],["2016-05-12T12:27:53.000Z",2.3000000000000003,{}],["2016-05-12T12:27:59.000Z",2.1,{}],["2016-05-12T12:28:06.000Z",6.0,{}],["2016-05-12T12:28:12.000Z",5.9,{}],["2016-05-12T12:28:23.000Z",2.2,{}],["2016-05-12T12:28:29.000Z",2.3000000000000003,{}],["2016-05-12T12:28:36.000Z",8.1,{}],["2016-05-12T12:28:42.000Z",8.1,{}],["2016-05-12T12:28:53.000Z",2.2,{}],["2016-05-12T12:28:59.000Z",2.2,{}],["2016-05-12T12:29:06.000Z",4.5,{}],["2016-05-12T12:29:12.000Z",4.5,{}],["2016-05-12T12:29:23.000Z",2.2,{}],["2016-05-12T12:29:29.000Z",2.3000000000000003,{}],["2016-05-12T12:29:36.000Z",4.8,{}],["2016-05-12T12:29:42.000Z",4.8,{}],["2016-05-12T12:29:53.000Z",2.2,{}],["2016-05-12T12:29:59.000Z",2.2,{}],["2016-05-12T12:30:06.000Z",4.6,{}],["2016-05-12T12:30:12.000Z",4.6,{}],["2016-05-12T12:30:23.000Z",2.3000000000000003,{}],["2016-05-12T12:30:29.000Z",2.5,{}],["2016-05-12T12:30:36.000Z",5.2,{}],["2016-05-12T12:30:42.000Z",5.1000000000000005,{}],["2016-05-12T12:30:53.000Z",2.4000000000000004,{}],["2016-05-12T12:30:59.000Z",2.2,{}],["2016-05-12T12:31:06.000Z",4.6000000000000005,{}],["2016-05-12T12:31:12.000Z",4.7,{}],["2016-05-12T12:31:23.000Z",2.3000000000000003,{}],["2016-05-12T12:31:29.000Z",2.3000000000000003,{}],["2016-05-12T12:31:36.000Z",4.6000000000000005,{}],["2016-05-12T12:31:42.000Z",4.5,{}],["2016-05-12T12:31:53.000Z",2.3000000000000003,{}],["2016-05-12T12:31:59.000Z",2.3000000000000003,{}],["2016-05-12T12:32:06.000Z",4.4,{}],["2016-05-12T12:32:12.000Z",4.5,{}],["2016-05-12T12:32:23.000Z",2.2,{}],["2016-05-12T12:32:29.000Z",2.7,{}],["2016-05-12T12:32:36.000Z",5.2,{}],["2016-05-12T12:32:42.000Z",5.1000000000000005,{}],["2016-05-12T12:32:53.000Z",2.8000000000000003,{}],["2016-05-12T12:32:59.000Z",2.4000000000000004,{}],["2016-05-12T12:33:06.000Z",4.5,{}],["2016-05-12T12:33:12.000Z",4.6000000000000005,{}],["2016-05-12T12:33:23.000Z",2.3000000000000003,{}],["2016-05-12T12:33:29.000Z",2.4000000000000004,{}],["2016-05-12T12:33:36.000Z",5.1000000000000005,{}],["2016-05-12T12:33:42.000Z",5.0,{}],["2016-05-12T12:33:53.000Z",2.4000000000000004,{}],["2016-05-12T12:33:59.000Z",2.5,{}],["2016-05-12T12:34:06.000Z",4.4,{}],["2016-05-12T12:34:12.000Z",4.4,{}],["2016-05-12T12:34:23.000Z",2.3000000000000003,{}],["2016-05-12T12:34:29.000Z",2.5,{}],["2016-05-12T12:34:36.000Z",5.3,{}],["2016-05-12T12:34:42.000Z",5.3,{}],["2016-05-12T12:34:53.000Z",2.8000000000000003,{}],["2016-05-12T12:34:59.000Z",2.4,{}],["2016-05-12T12:35:06.000Z",4.3,{}],["2016-05-12T12:35:12.000Z",4.3,{}],["2016-05-12T12:35:23.000Z",2.1,{}],["2016-05-12T12:35:29.000Z",2.2,{}],["2016-05-12T12:35:36.000Z",4.5,{}],["2016-05-12T12:35:42.000Z",4.3999999999999995,{}],["2016-05-12T12:35:53.000Z",2.6,{}],["2016-05-12T12:36:00.000Z",2.4,{}],["2016-05-12T12:36:06.000Z",4.2,{}],["2016-05-12T12:36:12.000Z",4.2,{}],["2016-05-12T12:36:23.000Z",2.4000000000000004,{}],["2016-05-12T12:36:30.000Z",2.6,{}],["2016-05-12T12:36:36.000Z",5.5,{}],["2016-05-12T12:36:42.000Z",5.6000000000000005,{}],["2016-05-12T12:36:54.000Z",2.7,{}],["2016-05-12T12:37:00.000Z",2.2,{}],["2016-05-12T12:37:06.000Z",4.3,{}],["2016-05-12T12:37:12.000Z",4.3,{}],["2016-05-12T12:37:24.000Z",2.1,{}],["2016-05-12T12:37:30.000Z",2.2,{}],["2016-05-12T12:37:36.000Z",4.7,{}],["2016-05-12T12:37:42.000Z",4.7,{}],["2016-05-12T12:37:54.000Z",2.2,{}],["2016-05-12T12:38:00.000Z",2.3000000000000003,{}],["2016-05-12T12:38:06.000Z",4.5,{}],["2016-05-12T12:38:12.000Z",4.5,{}],["2016-05-12T12:38:24.000Z",2.8000000000000003,{}],["2016-05-12T12:38:30.000Z",3.0,{}],["2016-05-12T12:38:36.000Z",4.8999999999999995,{}],["2016-05-12T12:38:42.000Z",5.0,{}],["2016-05-12T12:38:54.000Z",3.3000000000000003,{}],["2016-05-12T12:39:00.000Z",4.0,{}],["2016-05-12T12:39:06.000Z",4.4,{}],["2016-05-12T12:39:12.000Z",4.3,{}],["2016-05-12T12:39:24.000Z",3.7,{}],["2016-05-12T12:39:30.000Z",2.9000000000000004,{}],["2016-05-12T12:39:36.000Z",4.6000000000000005,{}],["2016-05-12T12:39:42.000Z",4.6000000000000005,{}],["2016-05-12T12:39:54.000Z",3.6,{}],["2016-05-12T12:40:00.000Z",3.5,{}],["2016-05-12T12:40:07.000Z",4.3,{}],["2016-05-12T12:40:12.000Z",4.3,{}],["2016-05-12T12:40:24.000Z",2.3000000000000003,{}],["2016-05-12T12:40:30.000Z",2.4000000000000004,{}],["2016-05-12T12:40:37.000Z",5.2,{}],["2016-05-12T12:40:42.000Z",5.2,{}],["2016-05-12T12:40:54.000Z",3.5,{}],["2016-05-12T12:41:00.000Z",3.4000000000000004,{}],["2016-05-12T12:41:07.000Z",4.3,{}],["2016-05-12T12:41:12.000Z",4.3,{}],["2016-05-12T12:41:24.000Z",2.4000000000000004,{}],["2016-05-12T12:41:30.000Z",2.4000000000000004,{}],["2016-05-12T12:41:37.000Z",4.6000000000000005,{}],["2016-05-12T12:41:42.000Z",4.7,{}],["2016-05-12T12:41:54.000Z",3.6,{}],["2016-05-12T12:42:00.000Z",3.7,{}],["2016-05-12T12:42:07.000Z",4.5,{}],["2016-05-12T12:42:12.000Z",4.5,{}],["2016-05-12T12:42:24.000Z",2.9000000000000004,{}],["2016-05-12T12:42:30.000Z",2.9000000000000004,{}],["2016-05-12T12:42:37.000Z",5.1,{}],["2016-05-12T12:42:43.000Z",5.1000000000000005,{}],["2016-05-12T12:42:54.000Z",3.0,{}],["2016-05-12T12:43:00.000Z",2.9000000000000004,{}],["2016-05-12T12:43:07.000Z",4.4,{}],["2016-05-12T12:43:13.000Z",4.4,{}],["2016-05-12T12:43:24.000Z",2.4000000000000004,{}],["2016-05-12T12:43:30.000Z",2.5,{}],["2016-05-12T12:43:37.000Z",4.6,{}],["2016-05-12T12:43:43.000Z",4.8,{}],["2016-05-12T12:43:54.000Z",2.7,{}],["2016-05-12T12:44:00.000Z",2.5,{}],["2016-05-12T12:44:07.000Z",4.6000000000000005,{}],["2016-05-12T12:44:13.000Z",4.6000000000000005,{}],["2016-05-12T12:44:24.000Z",2.1,{}],["2016-05-12T12:44:30.000Z",2.2,{}],["2016-05-12T12:44:37.000Z",4.8999999999999995,{}],["2016-05-12T12:44:43.000Z",4.9,{}],["2016-05-12T12:44:54.000Z",3.1,{}],["2016-05-12T12:45:00.000Z",3.0,{}],["2016-05-12T12:45:07.000Z",4.5,{}],["2016-05-12T12:45:13.000Z",4.4,{}],["2016-05-12T12:45:24.000Z",2.1,{}],["2016-05-12T12:45:30.000Z",2.2,{}],["2016-05-12T12:45:37.000Z",4.6000000000000005,{}],["2016-05-12T12:45:43.000Z",4.7,{}],["2016-05-12T12:45:54.000Z",2.2,{}],["2016-05-12T12:46:00.000Z",2.1,{}],["2016-05-12T12:46:07.000Z",4.4,{}],["2016-05-12T12:46:13.000Z",4.3,{}],["2016-05-12T12:46:24.000Z",2.1,{}],["2016-05-12T12:46:30.000Z",2.1,{}],["2016-05-12T12:46:37.000Z",5.2,{}],["2016-05-12T12:46:43.000Z",5.2,{}],["2016-05-12T12:46:54.000Z",2.5,{}],["2016-05-12T12:47:00.000Z",2.6,{}],["2016-05-12T12:47:07.000Z",4.3,{}],["2016-05-12T12:47:13.000Z",4.4,{}],["2016-05-12T12:47:24.000Z",3.4000000000000004,{}],["2016-05-12T12:47:30.000Z",3.4000000000000004,{}],["2016-05-12T12:47:37.000Z",4.6000000000000005,{}],["2016-05-12T12:47:43.000Z",4.6000000000000005,{}],["2016-05-12T12:47:54.000Z",3.2,{}],["2016-05-12T12:48:00.000Z",3.2,{}],["2016-05-12T12:48:07.000Z",4.5,{}],["2016-05-12T12:48:13.000Z",4.4,{}],["2016-05-12T12:48:24.000Z",2.2,{}],["2016-05-12T12:48:30.000Z",2.3000000000000003,{}],["2016-05-12T12:48:37.000Z",5.2,{}],["2016-05-12T12:48:43.000Z",5.4,{}],["2016-05-12T12:48:54.000Z",2.4000000000000004,{}],["2016-05-12T12:49:00.000Z",2.5,{}],["2016-05-12T12:49:07.000Z",4.6000000000000005,{}],["2016-05-12T12:49:13.000Z",4.4,{}],["2016-05-12T12:49:24.000Z",2.3000000000000003,{}],["2016-05-12T12:49:30.000Z",2.2,{}],["2016-05-12T12:49:37.000Z",4.5,{}],["2016-05-12T12:49:43.000Z",4.5,{}],["2016-05-12T12:49:54.000Z",2.9000000000000004,{}],["2016-05-12T12:50:00.000Z",2.8000000000000003,{}],["2016-05-12T12:50:07.000Z",4.3,{}],["2016-05-12T12:50:13.000Z",4.3,{}],["2016-05-12T12:50:24.000Z",2.3000000000000003,{}],["2016-05-12T12:50:30.000Z",2.3000000000000003,{}],["2016-05-12T12:50:37.000Z",4.7,{}],["2016-05-12T12:50:43.000Z",5.3,{}],["2016-05-12T12:50:54.000Z",2.6,{}],["2016-05-12T12:51:00.000Z",2.5,{}],["2016-05-12T12:51:07.000Z",4.9,{}],["2016-05-12T12:51:13.000Z",4.3,{}],["2016-05-12T12:51:24.000Z",2.2,{}],["2016-05-12T12:51:30.000Z",2.3000000000000003,{}],["2016-05-12T12:51:37.000Z",4.6000000000000005,{}],["2016-05-12T12:51:43.000Z",4.6000000000000005,{}],["2016-05-12T12:51:54.000Z",3.0,{}],["2016-05-12T12:52:00.000Z",2.9,{}],["2016-05-12T12:52:07.000Z",4.4,{}],["2016-05-12T12:52:13.000Z",4.3,{}],["2016-05-12T12:52:24.000Z",2.3000000000000003,{}],["2016-05-12T12:52:30.000Z",2.3000000000000003,{}],["2016-05-12T12:52:37.000Z",4.6000000000000005,{}],["2016-05-12T12:52:43.000Z",5.1000000000000005,{}],["2016-05-12T12:52:54.000Z",2.4,{}],["2016-05-12T12:53:00.000Z",2.4,{}],["2016-05-12T12:53:07.000Z",5.1000000000000005,{}],["2016-05-12T12:53:13.000Z",4.5,{}],["2016-05-12T12:53:24.000Z",2.2,{}],["2016-05-12T12:53:30.000Z",2.2,{}],["2016-05-12T12:53:37.000Z",4.6000000000000005,{}],["2016-05-12T12:53:43.000Z",4.8,{}],["2016-05-12T12:53:54.000Z",2.7,{}],["2016-05-12T12:54:00.000Z",2.7,{}],["2016-05-12T12:54:07.000Z",4.6000000000000005,{}],["2016-05-12T12:54:13.000Z",4.4,{}],["2016-05-12T12:54:24.000Z",2.2,{}],["2016-05-12T12:54:30.000Z",2.2,{}],["2016-05-12T12:54:37.000Z",4.6000000000000005,{}],["2016-05-12T12:54:43.000Z",5.0,{}],["2016-05-12T12:54:54.000Z",2.4,{}],["2016-05-12T12:55:00.000Z",2.3000000000000003,{}],["2016-05-12T12:55:07.000Z",8.399999999999999,{}],["2016-05-12T12:55:13.000Z",8.0,{}],["2016-05-12T12:55:24.000Z",2.2,{}],["2016-05-12T12:55:30.000Z",2.2,{}],["2016-05-12T12:55:37.000Z",4.5,{}],["2016-05-12T12:55:43.000Z",4.5,{}],["2016-05-12T12:55:54.000Z",2.8000000000000003,{}],["2016-05-12T12:56:00.000Z",2.9,{}],["2016-05-12T12:56:07.000Z",4.4,{}],["2016-05-12T12:56:13.000Z",4.4,{}],["2016-05-12T13:44:14.000Z",2.5999999999999996,{}],["2016-05-12T13:44:44.000Z",1.2,{}],["2016-05-12T13:45:14.000Z",1.1,{}],["2016-05-12T13:45:44.000Z",2.0,{}],["2016-05-12T13:46:14.000Z",2.2,{}],["2016-05-12T13:46:44.000Z",2.6,{}],["2016-05-12T13:47:14.000Z",2.7,{}],["2016-05-12T13:47:44.000Z",2.7,{}],["2016-05-12T13:48:14.000Z",2.2,{}],["2016-05-12T13:48:44.000Z",2.7,{}],["2016-05-12T13:49:14.000Z",2.1999999999999997,{}],["2016-05-12T13:49:44.000Z",2.7,{}],["2016-05-12T13:50:14.000Z",2.3000000000000003,{}],["2016-05-12T13:50:44.000Z",2.0,{}],["2016-05-12T13:51:14.000Z",2.2,{}],["2016-05-12T13:51:44.000Z",1.9000000000000001,{}],["2016-05-12T13:52:14.000Z",2.3000000000000003,{}],["2016-05-12T13:52:44.000Z",2.1,{}],["2016-05-12T13:53:14.000Z",1.4,{}],["2016-05-12T13:53:44.000Z",1.7000000000000002,{}],["2016-05-12T13:54:14.000Z",1.5,{}],["2016-05-12T13:54:44.000Z",2.0,{}],["2016-05-12T13:55:14.000Z",1.6,{}],["2016-05-12T13:55:44.000Z",1.7,{}],["2016-05-12T13:56:14.000Z",1.7000000000000002,{}],["2016-05-12T13:56:44.000Z",1.9000000000000001,{}],["2016-05-12T13:57:14.000Z",1.7,{}],["2016-05-12T13:57:44.000Z",2.0,{}],["2016-05-12T13:57:53.000Z",5.1000000000000005,{}],["2016-05-12T13:58:14.000Z",2.0,{}],["2016-05-12T13:58:23.000Z",3.9000000000000004,{}],["2016-05-12T13:58:45.000Z",2.9000000000000004,{}],["2016-05-12T13:58:53.000Z",2.8000000000000003,{}],["2016-05-12T13:59:15.000Z",2.0,{}],["2016-05-12T13:59:24.000Z",2.9,{}],["2016-05-12T13:59:45.000Z",1.8,{}],["2016-05-12T13:59:54.000Z",2.6,{}],["2016-05-12T14:00:15.000Z",1.3,{}],["2016-05-12T14:00:24.000Z",2.0,{}],["2016-05-12T14:00:45.000Z",2.4000000000000004,{}],["2016-05-12T14:00:54.000Z",1.8,{}],["2016-05-12T14:01:15.000Z",1.7,{}],["2016-05-12T14:01:24.000Z",2.4000000000000004,{}],["2016-05-12T14:01:45.000Z",2.3000000000000003,{}],["2016-05-12T14:01:56.000Z",2.2,{}],["2016-05-12T14:02:15.000Z",4.1,{}],["2016-05-12T14:02:24.000Z",2.9000000000000004,{}],["2016-05-12T14:02:45.000Z",1.9,{}],["2016-05-12T14:02:54.000Z",1.9,{}],["2016-05-12T14:03:15.000Z",1.5,{}],["2016-05-12T14:03:24.000Z",2.3000000000000003,{}],["2016-05-12T14:03:45.000Z",2.4000000000000004,{}],["2016-05-12T14:03:54.000Z",2.6,{}],["2016-05-12T14:04:15.000Z",2.0,{}],["2016-05-12T14:04:24.000Z",2.7,{}],["2016-05-12T14:04:45.000Z",1.8,{}],["2016-05-12T14:04:54.000Z",2.4,{}],["2016-05-12T14:05:15.000Z",1.8,{}],["2016-05-12T14:05:24.000Z",1.9000000000000001,{}],["2016-05-12T14:05:45.000Z",2.4000000000000004,{}],["2016-05-12T14:05:54.000Z",2.1,{}],["2016-05-12T14:06:15.000Z",3.1999999999999997,{}],["2016-05-12T14:06:24.000Z",1.2000000000000002,{}],["2016-05-12T14:06:45.000Z",4.7,{}],["2016-05-12T14:06:54.000Z",1.9000000000000001,{}],["2016-05-12T14:07:15.000Z",2.5,{}],["2016-05-12T14:07:24.000Z",4.0,{}],["2016-05-12T14:07:45.000Z",2.2,{}],["2016-05-12T14:07:54.000Z",1.5,{}],["2016-05-12T14:08:15.000Z",2.4000000000000004,{}],["2016-05-12T14:08:24.000Z",1.6,{}],["2016-05-12T14:08:45.000Z",2.4000000000000004,{}],["2016-05-12T14:08:54.000Z",1.5,{}],["2016-05-12T14:09:16.000Z",2.0,{}],["2016-05-12T14:09:24.000Z",1.7,{}],["2016-05-12T14:09:45.000Z",1.5,{}],["2016-05-12T14:09:54.000Z",1.1,{}],["2016-05-12T14:10:15.000Z",1.8,{}],["2016-05-12T14:10:24.000Z",1.9000000000000001,{}],["2016-05-12T14:10:45.000Z",2.1,{}],["2016-05-12T14:10:54.000Z",1.3,{}],["2016-05-12T14:11:15.000Z",3.8000000000000003,{}],["2016-05-12T14:11:24.000Z",1.3,{}],["2016-05-12T14:11:45.000Z",2.2,{}],["2016-05-12T14:11:54.000Z",2.4000000000000004,{}],["2016-05-12T14:12:15.000Z",1.8,{}],["2016-05-12T14:12:24.000Z",1.2000000000000002,{}],["2016-05-12T14:12:45.000Z",3.2,{}],["2016-05-12T14:12:54.000Z",2.1,{}],["2016-05-12T14:12:54.000Z",1.6,{}],["2016-05-12T14:13:15.000Z",2.7,{}],["2016-05-12T14:13:24.000Z",2.8000000000000003,{}],["2016-05-12T14:13:24.000Z",1.5,{}],["2016-05-12T14:13:45.000Z",2.8000000000000003,{}],["2016-05-12T14:13:54.000Z",1.2,{}],["2016-05-12T14:13:55.000Z",3.4000000000000004,{}],["2016-05-12T14:14:15.000Z",4.4,{}],["2016-05-12T14:14:24.000Z",3.6,{}],["2016-05-12T14:14:24.000Z",1.5,{}],["2016-05-12T14:14:45.000Z",2.0,{}],["2016-05-12T14:14:54.000Z",2.5,{}],["2016-05-12T14:14:55.000Z",1.1,{}],["2016-05-12T14:15:15.000Z",4.6000000000000005,{}],["2016-05-12T14:15:24.000Z",4.2,{}],["2016-05-12T14:15:24.000Z",1.3,{}],["2016-05-12T14:15:45.000Z",2.5,{}],["2016-05-12T14:15:54.000Z",1.5,{}],["2016-05-12T14:15:54.000Z",2.5999999999999996,{}],["2016-05-12T14:16:15.000Z",2.4000000000000004,{}],["2016-05-12T14:16:24.000Z",2.0,{}],["2016-05-12T14:16:24.000Z",1.3,{}],["2016-05-12T14:16:45.000Z",2.2,{}],["2016-05-12T14:16:54.000Z",1.7000000000000002,{}],["2016-05-12T14:16:55.000Z",2.4000000000000004,{}],["2016-05-12T14:17:15.000Z",2.2,{}],["2016-05-12T14:17:24.000Z",2.5,{}],["2016-05-12T14:17:24.000Z",1.7,{}],["2016-05-12T14:17:45.000Z",3.4000000000000004,{}],["2016-05-12T14:17:54.000Z",3.6,{}],["2016-05-12T14:17:54.000Z",3.3000000000000003,{}],["2016-05-12T14:18:15.000Z",2.7,{}],["2016-05-12T14:18:24.000Z",1.8,{}],["2016-05-12T14:18:24.000Z",2.9000000000000004,{}],["2016-05-12T14:18:45.000Z",3.5,{}],["2016-05-12T14:18:54.000Z",3.5,{}],["2016-05-12T14:18:56.000Z",2.2,{}],["2016-05-12T14:19:15.000Z",6.8,{}],["2016-05-12T14:19:24.000Z",2.5,{}],["2016-05-12T14:19:25.000Z",7.3,{}],["2016-05-12T14:19:45.000Z",3.8000000000000003,{}],["2016-05-12T14:19:54.000Z",4.3,{}],["2016-05-12T14:19:55.000Z",3.3000000000000003,{}],["2016-05-12T14:20:15.000Z",2.8000000000000003,{}],["2016-05-12T14:20:25.000Z",2.3000000000000003,{}],["2016-05-12T14:20:25.000Z",2.8000000000000003,{}],["2016-05-12T14:20:45.000Z",2.9000000000000004,{}],["2016-05-12T14:20:55.000Z",1.7,{}],["2016-05-12T14:20:55.000Z",3.0,{}],["2016-05-12T14:21:15.000Z",3.6,{}],["2016-05-12T14:21:25.000Z",3.1,{}],["2016-05-12T14:21:25.000Z",3.6,{}],["2016-05-12T14:21:45.000Z",4.3,{}],["2016-05-12T14:21:55.000Z",2.8,{}],["2016-05-12T14:21:55.000Z",4.1,{}],["2016-05-12T14:22:05.000Z",6.1,{}],["2016-05-12T14:22:15.000Z",4.3,{}],["2016-05-12T14:22:25.000Z",2.7,{}],["2016-05-12T14:22:25.000Z",4.4,{}],["2016-05-12T14:22:35.000Z",4.3,{}],["2016-05-12T14:22:46.000Z",3.5,{}],["2016-05-12T14:22:55.000Z",3.6,{}],["2016-05-12T14:22:55.000Z",3.3000000000000003,{}],["2016-05-12T14:23:05.000Z",3.2,{}],["2016-05-12T14:23:16.000Z",3.2,{}],["2016-05-12T14:23:25.000Z",4.0,{}],["2016-05-12T14:23:25.000Z",3.1,{}],["2016-05-12T14:23:35.000Z",3.3,{}],["2016-05-12T14:23:46.000Z",3.4,{}],["2016-05-12T14:23:55.000Z",3.6,{}],["2016-05-12T14:23:55.000Z",3.3,{}],["2016-05-12T14:24:05.000Z",3.0,{}],["2016-05-12T14:24:16.000Z",3.0,{}],["2016-05-12T14:24:25.000Z",3.8000000000000003,{}],["2016-05-12T14:24:25.000Z",2.9000000000000004,{}],["2016-05-12T14:24:35.000Z",2.8000000000000003,{}],["2016-05-12T14:24:46.000Z",2.4000000000000004,{}],["2016-05-12T14:24:55.000Z",3.7,{}],["2016-05-12T14:24:55.000Z",2.5,{}],["2016-05-12T14:25:05.000Z",2.7,{}],["2016-05-12T14:25:16.000Z",2.7,{}],["2016-05-12T14:25:25.000Z",4.1,{}],["2016-05-12T14:25:25.000Z",2.7,{}],["2016-05-12T14:25:35.000Z",2.7,{}],["2016-05-12T14:25:46.000Z",2.6,{}],["2016-05-12T14:25:55.000Z",2.5,{}],["2016-05-12T14:25:55.000Z",3.7,{}],["2016-05-12T14:26:05.000Z",2.4,{}],["2016-05-12T14:26:16.000Z",2.5,{}],["2016-05-12T14:26:25.000Z",3.6,{}],["2016-05-12T14:26:25.000Z",2.5999999999999996,{}],["2016-05-12T14:26:35.000Z",2.5,{}],["2016-05-12T14:26:46.000Z",2.4000000000000004,{}],["2016-05-12T14:26:55.000Z",2.4000000000000004,{}],["2016-05-12T14:26:55.000Z",3.6,{}],["2016-05-12T14:27:05.000Z",2.4000000000000004,{}],["2016-05-12T14:27:16.000Z",2.4000000000000004,{}],["2016-05-12T14:27:25.000Z",3.6,{}],["2016-05-12T14:27:25.000Z",2.4000000000000004,{}],["2016-05-12T14:27:35.000Z",2.4000000000000004,{}],["2016-05-12T14:27:46.000Z",2.6999999999999997,{}],["2016-05-12T14:27:55.000Z",5.2,{}],["2016-05-12T14:27:55.000Z",2.6999999999999997,{}],["2016-05-12T14:28:05.000Z",2.8,{}],["2016-05-12T14:28:16.000Z",2.7,{}],["2016-05-12T14:28:25.000Z",3.6,{}],["2016-05-12T14:28:25.000Z",3.1,{}],["2016-05-12T14:28:35.000Z",3.3000000000000003,{}],["2016-05-12T14:28:46.000Z",3.2,{}],["2016-05-12T14:28:55.000Z",3.8000000000000003,{}],["2016-05-12T14:28:55.000Z",3.0,{}],["2016-05-12T14:29:05.000Z",2.8000000000000003,{}],["2016-05-12T14:29:16.000Z",2.6,{}],["2016-05-12T14:29:25.000Z",2.4000000000000004,{}],["2016-05-12T14:29:25.000Z",3.7,{}],["2016-05-12T14:29:35.000Z",2.3000000000000003,{}],["2016-05-12T14:29:46.000Z",2.4000000000000004,{}],["2016-05-12T14:29:55.000Z",3.8000000000000003,{}],["2016-05-12T14:29:55.000Z",2.5999999999999996,{}],["2016-05-12T14:30:05.000Z",2.6999999999999997,{}],["2016-05-12T14:30:16.000Z",3.5,{}],["2016-05-12T14:30:25.000Z",3.6,{}],["2016-05-12T14:30:25.000Z",3.6,{}],["2016-05-12T14:30:35.000Z",3.7,{}],["2016-05-12T14:30:46.000Z",2.9000000000000004,{}],["2016-05-12T14:30:55.000Z",4.0,{}],["2016-05-12T14:30:55.000Z",2.9000000000000004,{}],["2016-05-12T14:31:05.000Z",3.0,{}],["2016-05-12T14:31:16.000Z",2.9000000000000004,{}],["2016-05-12T14:31:25.000Z",4.0,{}],["2016-05-12T14:31:25.000Z",2.9,{}],["2016-05-12T14:31:35.000Z",2.9,{}],["2016-05-12T14:31:46.000Z",3.0,{}],["2016-05-12T14:31:55.000Z",3.9000000000000004,{}],["2016-05-12T14:31:55.000Z",2.9000000000000004,{}],["2016-05-12T14:32:05.000Z",2.9000000000000004,{}],["2016-05-12T14:32:16.000Z",3.0,{}],["2016-05-12T14:32:25.000Z",3.7,{}],["2016-05-12T14:32:25.000Z",3.3000000000000003,{}],["2016-05-12T14:32:35.000Z",3.3000000000000003,{}],["2016-05-12T14:32:46.000Z",3.3000000000000003,{}],["2016-05-12T14:32:55.000Z",3.9,{}],["2016-05-12T14:32:55.000Z",3.2,{}],["2016-05-12T14:33:05.000Z",3.0999999999999996,{}],["2016-05-12T14:33:16.000Z",2.9,{}],["2016-05-12T14:33:25.000Z",4.2,{}],["2016-05-12T14:33:25.000Z",2.9,{}],["2016-05-12T14:33:35.000Z",2.9000000000000004,{}],["2016-05-12T14:33:46.000Z",3.4000000000000004,{}],["2016-05-12T14:33:55.000Z",3.7,{}],["2016-05-12T14:33:55.000Z",3.4000000000000004,{}],["2016-05-12T14:34:05.000Z",3.4000000000000004,{}],["2016-05-12T14:34:16.000Z",3.1,{}],["2016-05-12T14:34:25.000Z",6.8999999999999995,{}],["2016-05-12T14:34:25.000Z",3.0,{}],["2016-05-12T14:34:35.000Z",2.9,{}],["2016-05-12T14:34:46.000Z",2.9,{}],["2016-05-12T14:34:55.000Z",3.8000000000000003,{}],["2016-05-12T14:34:55.000Z",3.1999999999999997,{}],["2016-05-12T14:35:05.000Z",3.1,{}],["2016-05-12T14:35:16.000Z",3.1,{}],["2016-05-12T14:35:25.000Z",3.8000000000000003,{}],["2016-05-12T14:35:25.000Z",2.8000000000000003,{}],["2016-05-12T14:35:35.000Z",2.8000000000000003,{}],["2016-05-12T14:35:46.000Z",2.8000000000000003,{}],["2016-05-12T14:35:55.000Z",3.6,{}],["2016-05-12T14:35:55.000Z",2.8000000000000003,{}],["2016-05-12T14:36:05.000Z",3.0,{}],["2016-05-12T14:36:16.000Z",3.1999999999999997,{}],["2016-05-12T14:36:25.000Z",4.2,{}],["2016-05-12T14:36:25.000Z",3.3,{}],["2016-05-12T14:36:35.000Z",3.1999999999999997,{}],["2016-05-12T14:36:46.000Z",3.1999999999999997,{}],["2016-05-12T14:36:55.000Z",3.0,{}],["2016-05-12T14:36:55.000Z",3.6,{}],["2016-05-12T14:37:05.000Z",3.4000000000000004,{}],["2016-05-12T14:37:16.000Z",3.7,{}],["2016-05-12T14:37:25.000Z",3.7,{}],["2016-05-12T14:37:25.000Z",3.8000000000000003,{}],["2016-05-12T14:37:35.000Z",3.3000000000000003,{}],["2016-05-12T14:37:46.000Z",3.2,{}],["2016-05-12T14:37:55.000Z",3.8000000000000003,{}],["2016-05-12T14:37:55.000Z",3.2,{}],["2016-05-12T14:38:05.000Z",3.3000000000000003,{}],["2016-05-12T14:38:16.000Z",3.5,{}],["2016-05-12T14:38:25.000Z",4.5,{}],["2016-05-12T14:38:25.000Z",3.4,{}],["2016-05-12T14:38:35.000Z",3.4,{}],["2016-05-12T14:38:46.000Z",3.0,{}],["2016-05-12T14:38:55.000Z",3.6,{}],["2016-05-12T14:38:55.000Z",3.1,{}],["2016-05-12T14:39:05.000Z",3.2,{}],["2016-05-12T14:39:16.000Z",3.1,{}],["2016-05-12T14:39:25.000Z",3.0,{}],["2016-05-12T14:39:25.000Z",3.7,{}],["2016-05-12T14:39:35.000Z",3.4000000000000004,{}],["2016-05-12T14:39:46.000Z",4.0,{}],["2016-05-12T14:39:55.000Z",3.9,{}],["2016-05-12T14:39:56.000Z",4.1,{}],["2016-05-12T14:40:05.000Z",3.6999999999999997,{}],["2016-05-12T14:40:16.000Z",3.3000000000000003,{}],["2016-05-12T14:40:25.000Z",4.6000000000000005,{}],["2016-05-12T14:40:26.000Z",3.2,{}],["2016-05-12T14:40:35.000Z",3.4000000000000004,{}],["2016-05-12T14:40:46.000Z",3.5,{}],["2016-05-12T14:40:55.000Z",3.7,{}],["2016-05-12T14:40:56.000Z",3.6,{}],["2016-05-12T14:41:05.000Z",3.3000000000000003,{}],["2016-05-12T14:41:16.000Z",3.2,{}],["2016-05-12T14:41:25.000Z",3.7,{}],["2016-05-12T14:41:26.000Z",3.1,{}],["2016-05-12T14:41:35.000Z",3.1,{}],["2016-05-12T14:41:46.000Z",3.5,{}],["2016-05-12T14:41:55.000Z",3.6,{}],["2016-05-12T14:41:56.000Z",3.8,{}],["2016-05-12T14:42:05.000Z",3.8,{}],["2016-05-12T14:42:16.000Z",3.3,{}],["2016-05-12T14:42:25.000Z",4.3,{}],["2016-05-12T14:42:26.000Z",3.3,{}],["2016-05-12T14:42:35.000Z",3.2,{}],["2016-05-12T14:42:47.000Z",3.0,{}],["2016-05-12T14:42:55.000Z",3.7,{}],["2016-05-12T14:42:56.000Z",3.1,{}],["2016-05-12T14:43:06.000Z",3.2,{}],["2016-05-12T14:43:17.000Z",3.3000000000000003,{}],["2016-05-12T14:43:25.000Z",3.7,{}],["2016-05-12T14:43:26.000Z",3.1,{}],["2016-05-12T14:43:36.000Z",3.3,{}],["2016-05-12T14:43:47.000Z",4.0,{}],["2016-05-12T14:43:55.000Z",3.7,{}],["2016-05-12T14:43:56.000Z",4.0,{}],["2016-05-12T14:44:06.000Z",3.9000000000000004,{}],["2016-05-12T14:44:17.000Z",3.4000000000000004,{}],["2016-05-12T14:44:25.000Z",4.1,{}],["2016-05-12T14:44:26.000Z",3.3000000000000003,{}],["2016-05-12T14:44:36.000Z",3.1,{}],["2016-05-12T14:44:47.000Z",3.2,{}],["2016-05-12T14:44:55.000Z",3.6,{}],["2016-05-12T14:44:56.000Z",3.4000000000000004,{}],["2016-05-12T14:45:06.000Z",3.4000000000000004,{}],["2016-05-12T14:45:17.000Z",3.2,{}],["2016-05-12T14:45:26.000Z",3.6,{}],["2016-05-12T14:45:26.000Z",3.2,{}],["2016-05-12T14:45:36.000Z",3.5,{}],["2016-05-12T14:45:47.000Z",4.0,{}],["2016-05-12T14:45:56.000Z",3.7,{}],["2016-05-12T14:45:56.000Z",4.2,{}],["2016-05-12T14:46:06.000Z",4.1,{}],["2016-05-12T14:46:17.000Z",3.6,{}],["2016-05-12T14:46:26.000Z",4.1,{}],["2016-05-12T14:46:26.000Z",3.4000000000000004,{}],["2016-05-12T14:46:36.000Z",3.2,{}],["2016-05-12T14:46:47.000Z",3.4000000000000004,{}],["2016-05-12T14:46:56.000Z",3.7,{}],["2016-05-12T14:46:56.000Z",3.5,{}],["2016-05-12T14:47:06.000Z",3.5,{}],["2016-05-12T14:47:17.000Z",3.5,{}],["2016-05-12T14:47:26.000Z",3.5,{}],["2016-05-12T14:47:26.000Z",3.7,{}],["2016-05-12T14:47:36.000Z",3.5,{}],["2016-05-12T14:47:47.000Z",3.8,{}],["2016-05-12T14:47:56.000Z",3.6999999999999997,{}],["2016-05-12T14:47:56.000Z",3.9,{}],["2016-05-12T14:48:06.000Z",3.7,{}],["2016-05-12T14:48:17.000Z",3.2,{}],["2016-05-12T14:48:26.000Z",4.5,{}],["2016-05-12T14:48:26.000Z",3.2,{}],["2016-05-12T14:48:36.000Z",3.4000000000000004,{}],["2016-05-12T14:48:47.000Z",3.6,{}],["2016-05-12T14:48:56.000Z",3.7,{}],["2016-05-12T14:48:56.000Z",3.8000000000000003,{}],["2016-05-12T14:49:06.000Z",3.9000000000000004,{}],["2016-05-12T14:49:17.000Z",3.9000000000000004,{}],["2016-05-12T14:49:26.000Z",3.8,{}],["2016-05-12T14:49:26.000Z",3.9000000000000004,{}],["2016-05-12T14:49:36.000Z",3.9000000000000004,{}],["2016-05-12T14:49:47.000Z",3.6,{}],["2016-05-12T14:49:56.000Z",3.7,{}],["2016-05-12T14:49:56.000Z",3.8,{}],["2016-05-12T14:50:06.000Z",3.4,{}],["2016-05-12T14:50:17.000Z",3.4,{}],["2016-05-12T14:50:26.000Z",4.5,{}],["2016-05-12T14:50:26.000Z",3.2,{}],["2016-05-12T14:50:36.000Z",3.3000000000000003,{}],["2016-05-12T14:50:47.000Z",3.4000000000000004,{}],["2016-05-12T14:50:56.000Z",3.9,{}],["2016-05-12T14:50:56.000Z",3.2,{}],["2016-05-12T14:51:06.000Z",3.4000000000000004,{}],["2016-05-12T14:51:17.000Z",3.2,{}],["2016-05-12T14:51:26.000Z",3.4000000000000004,{}],["2016-05-12T14:51:26.000Z",3.9000000000000004,{}],["2016-05-12T14:51:36.000Z",3.3000000000000003,{}],["2016-05-12T14:51:47.000Z",3.4000000000000004,{}],["2016-05-12T14:51:56.000Z",3.7,{}],["2016-05-12T14:51:56.000Z",3.3000000000000003,{}],["2016-05-12T14:52:06.000Z",3.4,{}],["2016-05-12T14:52:17.000Z",3.5,{}],["2016-05-12T14:52:26.000Z",3.4,{}],["2016-05-12T14:52:26.000Z",4.2,{}],["2016-05-12T14:52:36.000Z",3.4,{}],["2016-05-12T14:52:47.000Z",3.4000000000000004,{}],["2016-05-12T14:52:56.000Z",3.4000000000000004,{}],["2016-05-12T14:52:56.000Z",3.8000000000000003,{}],["2016-05-12T14:53:06.000Z",3.4000000000000004,{}],["2016-05-12T14:53:17.000Z",3.2,{}],["2016-05-12T14:53:26.000Z",3.8000000000000003,{}],["2016-05-12T14:53:26.000Z",3.3000000000000003,{}],["2016-05-12T14:53:36.000Z",3.2,{}],["2016-05-12T14:53:47.000Z",3.3000000000000003,{}],["2016-05-12T14:53:56.000Z",3.4000000000000004,{}],["2016-05-12T14:53:56.000Z",3.8000000000000003,{}],["2016-05-12T14:54:06.000Z",3.8,{}],["2016-05-12T14:54:17.000Z",3.8,{}],["2016-05-12T14:54:26.000Z",4.2,{}],["2016-05-12T14:54:26.000Z",3.5,{}],["2016-05-12T14:54:36.000Z",3.1999999999999997,{}],["2016-05-12T14:54:47.000Z",3.2,{}],["2016-05-12T14:54:56.000Z",3.7,{}],["2016-05-12T14:54:56.000Z",3.3000000000000003,{}],["2016-05-12T14:55:06.000Z",3.2,{}],["2016-05-12T14:55:17.000Z",3.2,{}],["2016-05-12T14:55:26.000Z",3.8000000000000003,{}],["2016-05-12T14:55:26.000Z",3.3000000000000003,{}],["2016-05-12T14:55:36.000Z",3.3000000000000003,{}],["2016-05-12T14:55:47.000Z",3.0,{}],["2016-05-12T14:55:56.000Z",3.6,{}],["2016-05-12T14:55:56.000Z",2.9000000000000004,{}],["2016-05-12T14:56:06.000Z",3.0,{}],["2016-05-12T14:56:17.000Z",3.0999999999999996,{}],["2016-05-12T14:56:26.000Z",4.0,{}],["2016-05-12T14:56:26.000Z",3.0,{}],["2016-05-12T14:56:36.000Z",3.0999999999999996,{}],["2016-05-12T14:56:47.000Z",3.1,{}],["2016-05-12T14:56:56.000Z",3.8000000000000003,{}],["2016-05-12T14:56:56.000Z",3.4000000000000004,{}],["2016-05-12T14:57:06.000Z",3.4000000000000004,{}],["2016-05-12T14:57:17.000Z",3.3000000000000003,{}],["2016-05-12T14:57:26.000Z",3.8000000000000003,{}],["2016-05-12T14:57:26.000Z",3.1,{}],["2016-05-12T14:57:36.000Z",3.1,{}],["2016-05-12T14:57:47.000Z",3.2,{}],["2016-05-12T14:57:56.000Z",3.8000000000000003,{}],["2016-05-12T14:57:56.000Z",3.3000000000000003,{}],["2016-05-12T14:58:06.000Z",3.2,{}],["2016-05-12T14:58:17.000Z",3.0,{}],["2016-05-12T14:58:26.000Z",4.0,{}],["2016-05-12T14:58:26.000Z",3.0999999999999996,{}],["2016-05-12T14:58:36.000Z",3.0,{}],["2016-05-12T14:58:47.000Z",3.0999999999999996,{}],["2016-05-12T14:58:56.000Z",3.5,{}],["2016-05-12T14:58:56.000Z",2.8000000000000003,{}],["2016-05-12T14:59:06.000Z",3.0,{}],["2016-05-12T14:59:17.000Z",2.9000000000000004,{}],["2016-05-12T14:59:26.000Z",3.8000000000000003,{}],["2016-05-12T14:59:27.000Z",2.8000000000000003,{}],["2016-05-12T14:59:36.000Z",2.8000000000000003,{}],["2016-05-12T14:59:47.000Z",2.8000000000000003,{}],["2016-05-12T14:59:56.000Z",3.7,{}],["2016-05-12T14:59:57.000Z",3.6,{}],["2016-05-12T15:00:06.000Z",3.7,{}],["2016-05-12T15:00:17.000Z",3.7,{}],["2016-05-12T15:00:26.000Z",4.4,{}],["2016-05-12T15:00:27.000Z",3.0,{}],["2016-05-12T15:00:36.000Z",2.8000000000000003,{}],["2016-05-12T15:00:47.000Z",2.9,{}],["2016-05-12T15:00:56.000Z",5.3,{}],["2016-05-12T15:00:57.000Z",2.9,{}],["2016-05-12T15:01:06.000Z",3.0999999999999996,{}],["2016-05-12T15:01:17.000Z",3.2,{}],["2016-05-12T15:01:26.000Z",3.7,{}],["2016-05-12T15:01:27.000Z",3.2,{}],["2016-05-12T15:01:36.000Z",3.0,{}],["2016-05-12T15:01:47.000Z",2.8000000000000003,{}],["2016-05-12T15:01:56.000Z",3.6999999999999997,{}],["2016-05-12T15:01:57.000Z",3.1,{}],["2016-05-12T15:02:06.000Z",3.0,{}],["2016-05-12T15:02:17.000Z",3.2,{}],["2016-05-12T15:02:26.000Z",3.8000000000000003,{}],["2016-05-12T15:02:27.000Z",3.4,{}],["2016-05-12T15:02:36.000Z",3.5,{}],["2016-05-12T15:02:47.000Z",3.5,{}],["2016-05-12T15:02:56.000Z",4.7,{}],["2016-05-12T15:02:57.000Z",3.1,{}],["2016-05-12T15:03:06.000Z",3.0,{}],["2016-05-12T15:03:17.000Z",3.1,{}],["2016-05-12T15:03:26.000Z",3.8,{}],["2016-05-12T15:03:27.000Z",3.1,{}],["2016-05-12T15:03:37.000Z",3.1,{}],["2016-05-12T15:03:47.000Z",2.9000000000000004,{}],["2016-05-12T15:03:56.000Z",3.7,{}],["2016-05-12T15:03:57.000Z",3.0,{}],["2016-05-12T15:04:07.000Z",2.9000000000000004,{}],["2016-05-12T15:04:18.000Z",3.0999999999999996,{}],["2016-05-12T15:04:26.000Z",3.7,{}],["2016-05-12T15:04:27.000Z",2.9,{}],["2016-05-12T15:04:37.000Z",3.4,{}],["2016-05-12T15:04:48.000Z",3.4000000000000004,{}],["2016-05-12T15:04:56.000Z",4.6000000000000005,{}],["2016-05-12T15:04:57.000Z",3.6,{}],["2016-05-12T15:05:07.000Z",3.3000000000000003,{}],["2016-05-12T15:05:18.000Z",3.4000000000000004,{}],["2016-05-12T15:05:26.000Z",3.6,{}],["2016-05-12T15:05:27.000Z",3.3000000000000003,{}],["2016-05-12T15:05:37.000Z",3.6,{}],["2016-05-12T15:05:48.000Z",5.0,{}],["2016-05-12T15:05:56.000Z",3.8,{}],["2016-05-12T15:05:57.000Z",6.5,{}],["2016-05-12T15:06:07.000Z",6.1,{}],["2016-05-12T15:06:18.000Z",4.6000000000000005,{}],["2016-05-12T15:06:26.000Z",3.6,{}],["2016-05-12T15:06:27.000Z",3.0,{}],["2016-05-12T15:06:37.000Z",3.1,{}],["2016-05-12T15:06:48.000Z",3.0,{}],["2016-05-12T15:06:56.000Z",4.1,{}],["2016-05-12T15:06:57.000Z",2.9000000000000004,{}],["2016-05-12T15:07:07.000Z",2.6,{}],["2016-05-12T15:07:18.000Z",2.6,{}],["2016-05-12T15:07:27.000Z",4.0,{}],["2016-05-12T15:07:27.000Z",2.6,{}],["2016-05-12T15:07:37.000Z",2.6,{}],["2016-05-12T15:07:48.000Z",2.7,{}],["2016-05-12T15:07:57.000Z",4.2,{}],["2016-05-12T15:07:57.000Z",3.5999999999999996,{}],["2016-05-12T15:08:07.000Z",3.5999999999999996,{}],["2016-05-12T15:08:18.000Z",3.5,{}],["2016-05-12T15:08:27.000Z",3.8000000000000003,{}],["2016-05-12T15:08:27.000Z",2.8000000000000003,{}],["2016-05-12T15:08:37.000Z",2.8000000000000003,{}],["2016-05-12T15:08:48.000Z",2.7,{}],["2016-05-12T15:08:57.000Z",4.0,{}],["2016-05-12T15:08:57.000Z",2.4000000000000004,{}],["2016-05-12T15:09:07.000Z",2.6,{}],["2016-05-12T15:09:18.000Z",2.7,{}],["2016-05-12T15:09:27.000Z",3.6999999999999997,{}],["2016-05-12T15:09:27.000Z",2.8,{}],["2016-05-12T15:09:37.000Z",2.5999999999999996,{}],["2016-05-12T15:09:48.000Z",2.5999999999999996,{}],["2016-05-12T15:09:57.000Z",3.8000000000000003,{}],["2016-05-12T15:09:57.000Z",3.1,{}],["2016-05-12T15:10:07.000Z",3.1,{}],["2016-05-12T15:10:18.000Z",3.1,{}],["2016-05-12T15:10:27.000Z",2.8000000000000003,{}],["2016-05-12T15:10:27.000Z",3.8000000000000003,{}],["2016-05-12T15:10:37.000Z",2.8000000000000003,{}],["2016-05-12T15:10:48.000Z",2.6,{}],["2016-05-12T15:10:57.000Z",4.0,{}],["2016-05-12T15:10:57.000Z",2.6,{}],["2016-05-12T15:11:07.000Z",2.5,{}],["2016-05-12T15:11:18.000Z",2.6,{}],["2016-05-12T15:11:27.000Z",2.6,{}],["2016-05-12T15:11:27.000Z",3.8000000000000003,{}],["2016-05-12T15:11:37.000Z",2.9,{}],["2016-05-12T15:11:48.000Z",2.8,{}],["2016-05-12T15:11:57.000Z",3.9000000000000004,{}],["2016-05-12T15:11:57.000Z",3.3,{}],["2016-05-12T15:12:07.000Z",3.1,{}],["2016-05-12T15:12:18.000Z",3.3000000000000003,{}],["2016-05-12T15:12:27.000Z",2.8000000000000003,{}],["2016-05-12T15:12:27.000Z",4.2,{}],["2016-05-12T15:12:37.000Z",2.6,{}],["2016-05-12T15:12:48.000Z",2.6,{}],["2016-05-12T15:12:57.000Z",2.7,{}],["2016-05-12T15:12:57.000Z",4.7,{}],["2016-05-12T15:13:07.000Z",2.7,{}],["2016-05-12T15:13:18.000Z",2.5,{}],["2016-05-12T15:13:27.000Z",3.6999999999999997,{}],["2016-05-12T15:13:27.000Z",2.6,{}],["2016-05-12T15:13:37.000Z",2.7,{}],["2016-05-12T15:13:48.000Z",2.9,{}],["2016-05-12T15:13:57.000Z",3.7,{}],["2016-05-12T15:13:57.000Z",3.0999999999999996,{}],["2016-05-12T15:14:07.000Z",3.0,{}],["2016-05-12T15:14:18.000Z",2.8000000000000003,{}],["2016-05-12T15:14:27.000Z",2.4000000000000004,{}],["2016-05-12T15:14:27.000Z",3.6,{}],["2016-05-12T15:14:37.000Z",2.6,{}],["2016-05-12T15:14:48.000Z",2.5,{}],["2016-05-12T15:14:57.000Z",3.9000000000000004,{}],["2016-05-12T15:14:57.000Z",2.4000000000000004,{}],["2016-05-12T15:15:07.000Z",2.3000000000000003,{}],["2016-05-12T15:15:18.000Z",2.5,{}],["2016-05-12T15:15:27.000Z",2.5999999999999996,{}],["2016-05-12T15:15:27.000Z",3.8,{}],["2016-05-12T15:15:37.000Z",2.8,{}],["2016-05-12T15:15:48.000Z",2.6999999999999997,{}],["2016-05-12T15:15:57.000Z",3.7,{}],["2016-05-12T15:15:57.000Z",2.9000000000000004,{}],["2016-05-12T15:16:07.000Z",2.6,{}],["2016-05-12T15:16:18.000Z",2.6,{}],["2016-05-12T15:16:27.000Z",2.6,{}],["2016-05-12T15:16:27.000Z",3.6,{}],["2016-05-12T15:16:37.000Z",2.6,{}],["2016-05-12T15:16:48.000Z",2.8000000000000003,{}],["2016-05-12T15:16:57.000Z",4.1,{}],["2016-05-12T15:16:57.000Z",2.8000000000000003,{}],["2016-05-12T15:17:07.000Z",2.6999999999999997,{}],["2016-05-12T15:17:18.000Z",2.6999999999999997,{}],["2016-05-12T15:17:27.000Z",3.8000000000000003,{}],["2016-05-12T15:17:27.000Z",2.6999999999999997,{}],["2016-05-12T15:17:37.000Z",2.8000000000000003,{}],["2016-05-12T15:17:48.000Z",2.5,{}],["2016-05-12T15:17:57.000Z",3.7,{}],["2016-05-12T15:17:57.000Z",2.8000000000000003,{}],["2016-05-12T15:18:07.000Z",2.6,{}],["2016-05-12T15:18:18.000Z",2.7,{}],["2016-05-12T15:18:27.000Z",3.5,{}],["2016-05-12T15:18:27.000Z",2.3000000000000003,{}],["2016-05-12T15:18:37.000Z",2.4000000000000004,{}],["2016-05-12T15:18:48.000Z",2.4,{}],["2016-05-12T15:18:57.000Z",2.5,{}],["2016-05-12T15:18:57.000Z",3.8000000000000003,{}],["2016-05-12T15:19:07.000Z",2.4,{}],["2016-05-12T15:19:18.000Z",2.4000000000000004,{}],["2016-05-12T15:19:27.000Z",3.5,{}],["2016-05-12T15:19:27.000Z",2.3000000000000003,{}],["2016-05-12T15:19:37.000Z",2.3000000000000003,{}],["2016-05-12T15:19:48.000Z",2.2,{}],["2016-05-12T15:19:57.000Z",2.2,{}],["2016-05-12T15:19:57.000Z",2.7,{}],["2016-05-12T15:20:07.000Z",2.9,{}],["2016-05-12T15:20:18.000Z",2.6999999999999997,{}],["2016-05-12T15:20:27.000Z",0.7999999999999999,{}],["2016-05-12T15:20:27.000Z",2.1999999999999997,{}],["2016-05-12T15:20:37.000Z",1.9,{}],["2016-05-12T15:20:48.000Z",1.9,{}],["2016-05-12T15:20:57.000Z",1.2,{}],["2016-05-12T15:20:57.000Z",1.8,{}],["2016-05-12T15:21:07.000Z",1.5,{}],["2016-05-12T15:21:18.000Z",1.5,{}],["2016-05-12T15:21:27.000Z",0.8999999999999999,{}],["2016-05-12T15:21:27.000Z",1.7,{}],["2016-05-12T15:21:37.000Z",1.9,{}],["2016-05-12T15:21:48.000Z",1.7,{}],["2016-05-12T15:21:57.000Z",1.0,{}],["2016-05-12T15:21:58.000Z",1.9000000000000001,{}],["2016-05-12T15:22:07.000Z",1.7,{}],["2016-05-12T15:22:18.000Z",1.7,{}],["2016-05-12T15:22:27.000Z",0.7,{}],["2016-05-12T15:22:28.000Z",1.3,{}],["2016-05-12T15:22:37.000Z",1.4,{}],["2016-05-12T15:22:48.000Z",1.5,{}],["2016-05-12T15:22:57.000Z",0.8999999999999999,{}],["2016-05-12T15:22:58.000Z",1.5,{}],["2016-05-12T15:23:07.000Z",1.5,{}],["2016-05-12T15:23:18.000Z",1.5999999999999999,{}],["2016-05-12T15:23:27.000Z",0.8,{}],["2016-05-12T15:23:28.000Z",1.7,{}],["2016-05-12T15:23:37.000Z",1.5999999999999999,{}],["2016-05-12T15:23:48.000Z",1.4,{}],["2016-05-12T15:23:57.000Z",0.7,{}],["2016-05-12T15:23:58.000Z",1.7,{}],["2016-05-12T15:24:07.000Z",1.8,{}],["2016-05-12T15:24:18.000Z",1.5999999999999999,{}],["2016-05-12T15:24:27.000Z",0.8999999999999999,{}],["2016-05-12T15:24:28.000Z",1.3,{}],["2016-05-12T15:24:37.000Z",1.3,{}],["2016-05-12T15:24:48.000Z",1.3,{}],["2016-05-12T15:24:57.000Z",1.5,{}],["2016-05-12T15:24:58.000Z",1.2,{}],["2016-05-12T15:25:07.000Z",1.2,{}],["2016-05-12T15:25:18.000Z",1.1,{}],["2016-05-12T15:25:27.000Z",1.8,{}],["2016-05-12T15:25:28.000Z",1.2,{}],["2016-05-12T15:25:37.000Z",1.2,{}],["2016-05-12T15:25:48.000Z",1.2,{}],["2016-05-12T15:25:57.000Z",0.7999999999999999,{}],["2016-05-12T15:25:58.000Z",2.0,{}],["2016-05-12T15:26:08.000Z",2.0,{}],["2016-05-12T15:26:18.000Z",2.1,{}],["2016-05-12T15:26:27.000Z",1.0,{}],["2016-05-12T15:26:28.000Z",1.4000000000000001,{}],["2016-05-12T15:26:38.000Z",1.3,{}],["2016-05-12T15:26:49.000Z",1.3,{}],["2016-05-12T15:26:57.000Z",0.8999999999999999,{}],["2016-05-12T15:26:58.000Z",1.4,{}],["2016-05-12T15:27:08.000Z",1.5,{}],["2016-05-12T15:27:19.000Z",1.5,{}],["2016-05-12T15:27:27.000Z",1.2000000000000002,{}],["2016-05-12T15:27:28.000Z",1.4,{}],["2016-05-12T15:27:38.000Z",1.4,{}],["2016-05-12T15:27:49.000Z",1.3,{}],["2016-05-12T15:27:58.000Z",0.7,{}],["2016-05-12T15:27:58.000Z",1.4,{}],["2016-05-12T15:28:08.000Z",1.5,{}],["2016-05-12T15:28:19.000Z",1.5,{}],["2016-05-12T15:28:28.000Z",0.8,{}],["2016-05-12T15:28:28.000Z",1.3,{}],["2016-05-12T15:28:38.000Z",1.3,{}],["2016-05-12T15:28:49.000Z",1.3,{}],["2016-05-12T15:28:58.000Z",0.6,{}],["2016-05-12T15:28:58.000Z",1.3,{}],["2016-05-12T15:29:08.000Z",1.3,{}],["2016-05-12T15:29:19.000Z",1.3,{}],["2016-05-12T15:29:28.000Z",1.1,{}],["2016-05-12T15:29:28.000Z",1.4,{}],["2016-05-12T15:29:38.000Z",1.5,{}],["2016-05-12T15:29:49.000Z",1.6,{}],["2016-05-12T15:29:58.000Z",0.6,{}],["2016-05-12T15:29:58.000Z",2.1,{}],["2016-05-12T15:30:08.000Z",2.0,{}],["2016-05-12T15:30:19.000Z",1.9,{}],["2016-05-12T15:30:28.000Z",0.8,{}],["2016-05-12T15:30:28.000Z",1.4,{}],["2016-05-12T15:30:38.000Z",1.4,{}],["2016-05-12T15:30:49.000Z",1.4,{}],["2016-05-12T15:30:58.000Z",1.4,{}],["2016-05-12T15:30:58.000Z",0.6,{}],["2016-05-12T15:31:08.000Z",1.7,{}],["2016-05-12T15:31:19.000Z",1.7,{}],["2016-05-12T15:31:28.000Z",1.1,{}],["2016-05-12T15:31:28.000Z",1.9000000000000001,{}],["2016-05-12T15:31:38.000Z",2.8,{}],["2016-05-12T15:31:49.000Z",3.6999999999999997,{}],["2016-05-12T15:31:58.000Z",0.7,{}],["2016-05-12T15:31:58.000Z",3.6999999999999997,{}],["2016-05-12T15:32:08.000Z",2.2,{}],["2016-05-12T15:32:19.000Z",1.4,{}],["2016-05-12T15:32:28.000Z",1.5999999999999999,{}],["2016-05-12T15:32:28.000Z",1.1,{}],["2016-05-12T15:32:38.000Z",1.5999999999999999,{}],["2016-05-12T15:32:49.000Z",1.7,{}],["2016-05-12T15:32:58.000Z",2.3000000000000003,{}],["2016-05-12T15:32:58.000Z",1.8,{}],["2016-05-12T15:33:08.000Z",2.2,{}],["2016-05-12T15:33:19.000Z",2.5,{}],["2016-05-12T15:33:28.000Z",1.4,{}],["2016-05-12T15:33:28.000Z",2.4000000000000004,{}],["2016-05-12T15:33:39.000Z",3.0,{}],["2016-05-12T15:33:49.000Z",3.5999999999999996,{}],["2016-05-12T15:33:58.000Z",1.0,{}],["2016-05-12T15:33:58.000Z",3.5999999999999996,{}],["2016-05-12T15:34:08.000Z",2.8,{}],["2016-05-12T15:34:19.000Z",2.0,{}],["2016-05-12T15:34:28.000Z",1.8,{}],["2016-05-12T15:34:28.000Z",1.0,{}],["2016-05-12T15:34:38.000Z",1.7,{}],["2016-05-12T15:34:49.000Z",1.7,{}],["2016-05-12T15:34:58.000Z",1.5,{}],["2016-05-12T15:34:58.000Z",0.8,{}],["2016-05-12T15:35:08.000Z",1.5,{}],["2016-05-12T15:35:19.000Z",1.5,{}],["2016-05-12T15:35:28.000Z",1.5,{}],["2016-05-12T15:35:28.000Z",1.6,{}],["2016-05-12T15:35:38.000Z",1.5999999999999999,{}],["2016-05-12T15:35:49.000Z",1.5999999999999999,{}],["2016-05-12T15:35:58.000Z",1.5999999999999999,{}],["2016-05-12T15:35:58.000Z",0.8999999999999999,{}],["2016-05-12T15:36:08.000Z",1.7,{}],["2016-05-12T15:36:19.000Z",1.5999999999999999,{}],["2016-05-12T15:36:28.000Z",1.5999999999999999,{}],["2016-05-12T15:36:28.000Z",1.0,{}],["2016-05-12T15:36:38.000Z",1.6,{}],["2016-05-12T15:36:49.000Z",1.6,{}],["2016-05-12T15:36:58.000Z",1.1,{}],["2016-05-12T15:36:58.000Z",1.7,{}],["2016-05-12T15:37:08.000Z",1.5999999999999999,{}],["2016-05-12T15:37:19.000Z",1.8,{}],["2016-05-12T15:37:28.000Z",1.7,{}],["2016-05-12T15:37:28.000Z",1.2,{}],["2016-05-12T15:37:38.000Z",1.7,{}],["2016-05-12T15:37:49.000Z",1.7,{}],["2016-05-12T15:37:58.000Z",1.2,{}],["2016-05-12T15:37:58.000Z",1.9000000000000001,{}],["2016-05-12T15:38:08.000Z",1.9000000000000001,{}],["2016-05-12T15:38:19.000Z",1.8,{}],["2016-05-12T15:38:28.000Z",1.0,{}],["2016-05-12T15:38:28.000Z",1.7,{}],["2016-05-12T15:38:38.000Z",1.7,{}],["2016-05-12T15:38:49.000Z",1.7,{}],["2016-05-12T15:38:58.000Z",1.0,{}],["2016-05-12T15:38:58.000Z",1.7,{}],["2016-05-12T15:39:08.000Z",1.7,{}],["2016-05-12T15:39:19.000Z",1.7,{}],["2016-05-12T15:39:28.000Z",1.3,{}],["2016-05-12T15:39:28.000Z",1.5,{}],["2016-05-12T15:39:38.000Z",1.5,{}],["2016-05-12T15:39:49.000Z",1.9000000000000001,{}],["2016-05-12T15:39:58.000Z",1.0,{}],["2016-05-12T15:39:58.000Z",2.0,{}],["2016-05-12T15:40:08.000Z",1.9,{}],["2016-05-12T15:40:19.000Z",1.5999999999999999,{}],["2016-05-12T15:40:28.000Z",1.0,{}],["2016-05-12T15:40:28.000Z",1.5999999999999999,{}],["2016-05-12T15:40:38.000Z",1.7,{}],["2016-05-12T15:40:49.000Z",1.9,{}],["2016-05-12T15:40:58.000Z",1.4,{}],["2016-05-12T15:40:59.000Z",2.0,{}],["2016-05-12T15:41:08.000Z",2.1,{}],["2016-05-12T15:41:19.000Z",2.1,{}],["2016-05-12T15:41:28.000Z",2.0,{}],["2016-05-12T15:41:29.000Z",2.1,{}],["2016-05-12T15:41:38.000Z",3.0,{}],["2016-05-12T15:41:49.000Z",4.9,{}],["2016-05-12T15:41:58.000Z",1.6,{}],["2016-05-12T15:41:59.000Z",5.1,{}],["2016-05-12T15:42:08.000Z",4.9,{}],["2016-05-12T15:42:19.000Z",3.6,{}],["2016-05-12T15:42:28.000Z",1.4,{}],["2016-05-12T15:42:29.000Z",3.9000000000000004,{}],["2016-05-12T15:42:38.000Z",3.8000000000000003,{}],["2016-05-12T15:42:49.000Z",3.9000000000000004,{}],["2016-05-12T15:42:58.000Z",2.5,{}],["2016-05-12T15:42:59.000Z",4.1,{}],["2016-05-12T15:43:08.000Z",4.2,{}],["2016-05-12T15:43:19.000Z",4.2,{}],["2016-05-12T15:43:28.000Z",1.5999999999999999,{}],["2016-05-12T15:43:29.000Z",4.2,{}],["2016-05-12T15:43:38.000Z",4.2,{}],["2016-05-12T15:43:49.000Z",5.0,{}],["2016-05-12T15:43:58.000Z",1.3,{}],["2016-05-12T15:43:59.000Z",5.2,{}],["2016-05-12T15:44:08.000Z",5.2,{}],["2016-05-12T15:44:19.000Z",4.5,{}],["2016-05-12T15:44:28.000Z",1.2,{}],["2016-05-12T15:44:29.000Z",4.3,{}],["2016-05-12T15:44:38.000Z",4.3,{}],["2016-05-12T15:44:49.000Z",4.3,{}],["2016-05-12T15:44:58.000Z",1.4,{}],["2016-05-12T15:44:59.000Z",4.4,{}],["2016-05-12T15:45:08.000Z",4.4,{}],["2016-05-12T15:45:19.000Z",4.5,{}],["2016-05-12T15:45:28.000Z",2.1,{}],["2016-05-12T15:45:29.000Z",4.4,{}],["2016-05-12T15:45:38.000Z",4.3,{}],["2016-05-12T15:45:49.000Z",5.1000000000000005,{}],["2016-05-12T15:45:58.000Z",1.4000000000000001,{}],["2016-05-12T15:45:59.000Z",5.2,{}],["2016-05-12T15:46:08.000Z",5.1,{}],["2016-05-12T15:46:19.000Z",4.3,{}],["2016-05-12T15:46:28.000Z",1.2,{}],["2016-05-12T15:46:29.000Z",4.3999999999999995,{}],["2016-05-12T15:46:38.000Z",4.4,{}],["2016-05-12T15:46:49.000Z",4.4,{}],["2016-05-12T15:46:58.000Z",1.3,{}],["2016-05-12T15:46:59.000Z",4.4,{}],["2016-05-12T15:47:08.000Z",4.3,{}],["2016-05-12T15:47:20.000Z",4.5,{}],["2016-05-12T15:47:28.000Z",1.8,{}],["2016-05-12T15:47:29.000Z",4.4,{}],["2016-05-12T15:47:39.000Z",4.4,{}],["2016-05-12T15:47:50.000Z",4.7,{}],["2016-05-12T15:47:58.000Z",1.4000000000000001,{}],["2016-05-12T15:47:59.000Z",4.7,{}],["2016-05-12T15:48:09.000Z",4.7,{}],["2016-05-12T15:48:20.000Z",4.5,{}],["2016-05-12T15:48:28.000Z",1.4,{}],["2016-05-12T15:48:29.000Z",4.3,{}],["2016-05-12T15:48:39.000Z",4.3,{}],["2016-05-12T15:48:50.000Z",4.3,{}],["2016-05-12T15:48:58.000Z",1.3,{}],["2016-05-12T15:48:59.000Z",4.4,{}],["2016-05-12T15:49:09.000Z",4.4,{}],["2016-05-12T15:49:20.000Z",4.6000000000000005,{}],["2016-05-12T15:49:28.000Z",3.8,{}],["2016-05-12T15:49:29.000Z",4.5,{}],["2016-05-12T15:49:39.000Z",4.5,{}],["2016-05-12T15:49:50.000Z",4.8999999999999995,{}],["2016-05-12T15:49:58.000Z",2.8,{}],["2016-05-12T15:49:59.000Z",4.8999999999999995,{}],["2016-05-12T15:50:09.000Z",5.0,{}],["2016-05-12T15:50:20.000Z",4.3,{}],["2016-05-12T15:50:28.000Z",1.2,{}],["2016-05-12T15:50:29.000Z",4.2,{}],["2016-05-12T15:50:39.000Z",4.2,{}],["2016-05-12T15:50:50.000Z",4.3,{}],["2016-05-12T15:50:58.000Z",1.3,{}],["2016-05-12T15:50:59.000Z",4.4,{}],["2016-05-12T15:51:09.000Z",4.3999999999999995,{}],["2016-05-12T15:51:20.000Z",4.5,{}],["2016-05-12T15:51:28.000Z",1.4000000000000001,{}],["2016-05-12T15:51:29.000Z",4.3999999999999995,{}],["2016-05-12T15:51:39.000Z",4.3,{}],["2016-05-12T15:51:50.000Z",4.4,{}],["2016-05-12T15:51:58.000Z",1.9,{}],["2016-05-12T15:51:59.000Z",4.5,{}],["2016-05-12T15:52:09.000Z",4.7,{}],["2016-05-12T15:52:20.000Z",4.8,{}],["2016-05-12T15:52:29.000Z",1.2,{}],["2016-05-12T15:52:29.000Z",5.0,{}],["2016-05-12T15:52:39.000Z",4.7,{}],["2016-05-12T15:52:50.000Z",4.9,{}],["2016-05-12T15:52:59.000Z",1.4000000000000001,{}],["2016-05-12T15:52:59.000Z",4.9,{}],["2016-05-12T15:53:09.000Z",5.3999999999999995,{}],["2016-05-12T15:53:20.000Z",5.0,{}],["2016-05-12T15:53:29.000Z",1.5,{}],["2016-05-12T15:53:29.000Z",4.7,{}],["2016-05-12T15:53:39.000Z",4.3,{}],["2016-05-12T15:53:50.000Z",4.4,{}],["2016-05-12T15:53:59.000Z",1.9,{}],["2016-05-12T15:53:59.000Z",4.4,{}],["2016-05-12T15:54:09.000Z",4.5,{}],["2016-05-12T15:54:20.000Z",4.5,{}],["2016-05-12T15:54:29.000Z",1.4,{}],["2016-05-12T15:54:29.000Z",4.4,{}],["2016-05-12T15:54:39.000Z",4.4,{}],["2016-05-12T15:54:50.000Z",4.5,{}],["2016-05-12T15:54:59.000Z",4.5,{}],["2016-05-12T15:54:59.000Z",1.3,{}],["2016-05-12T15:55:09.000Z",5.8999999999999995,{}],["2016-05-12T15:55:20.000Z",7.3,{}],["2016-05-12T15:55:29.000Z",1.4,{}],["2016-05-12T15:55:29.000Z",7.3,{}],["2016-05-12T15:55:39.000Z",5.8,{}],["2016-05-12T15:55:50.000Z",4.3,{}],["2016-05-12T15:55:59.000Z",4.3,{}],["2016-05-12T15:55:59.000Z",1.9,{}],["2016-05-12T15:56:09.000Z",4.4,{}],["2016-05-12T15:56:20.000Z",4.4,{}],["2016-05-12T15:56:29.000Z",4.4,{}],["2016-05-12T15:56:29.000Z",1.3,{}],["2016-05-12T15:56:39.000Z",4.5,{}],["2016-05-12T15:56:50.000Z",4.4,{}],["2016-05-12T15:56:59.000Z",1.2,{}],["2016-05-12T15:56:59.000Z",4.4,{}],["2016-05-12T15:57:09.000Z",4.4,{}],["2016-05-12T15:57:20.000Z",4.9,{}],["2016-05-12T15:57:29.000Z",4.8,{}],["2016-05-12T15:57:29.000Z",1.2,{}],["2016-05-12T15:57:39.000Z",4.9,{}],["2016-05-12T15:57:50.000Z",4.3,{}],["2016-05-12T15:57:59.000Z",4.6,{}],["2016-05-12T15:57:59.000Z",1.9,{}],["2016-05-12T15:58:09.000Z",4.5,{}],["2016-05-12T15:58:20.000Z",4.5,{}],["2016-05-12T15:58:29.000Z",1.3,{}],["2016-05-12T15:58:29.000Z",4.3,{}],["2016-05-12T15:58:39.000Z",4.2,{}],["2016-05-12T15:58:50.000Z",4.2,{}],["2016-05-12T15:58:59.000Z",1.2,{}],["2016-05-12T15:58:59.000Z",4.4,{}],["2016-05-12T15:59:09.000Z",4.4,{}],["2016-05-12T15:59:20.000Z",4.7,{}],["2016-05-12T15:59:29.000Z",1.3,{}],["2016-05-12T15:59:29.000Z",4.7,{}],["2016-05-12T15:59:39.000Z",4.6000000000000005,{}],["2016-05-12T15:59:50.000Z",4.3,{}],["2016-05-12T15:59:59.000Z",2.0,{}],["2016-05-12T15:59:59.000Z",4.3,{}],["2016-05-12T16:00:09.000Z",4.3,{}],["2016-05-12T16:00:20.000Z",4.3999999999999995,{}],["2016-05-12T16:00:29.000Z",1.2,{}],["2016-05-12T16:00:30.000Z",4.5,{}],["2016-05-12T16:00:39.000Z",4.4,{}],["2016-05-12T16:00:50.000Z",4.6000000000000005,{}],["2016-05-12T16:00:59.000Z",1.2,{}],["2016-05-12T16:01:00.000Z",4.5,{}],["2016-05-12T16:01:09.000Z",4.5,{}],["2016-05-12T16:01:20.000Z",4.6000000000000005,{}],["2016-05-12T16:01:29.000Z",1.3,{}],["2016-05-12T16:01:30.000Z",4.6000000000000005,{}],["2016-05-12T16:01:39.000Z",4.5,{}],["2016-05-12T16:01:50.000Z",4.2,{}],["2016-05-12T16:01:59.000Z",1.6,{}],["2016-05-12T16:02:00.000Z",4.2,{}],["2016-05-12T16:02:09.000Z",4.5,{}],["2016-05-12T16:02:20.000Z",4.5,{}],["2016-05-12T16:02:29.000Z",1.4,{}],["2016-05-12T16:02:30.000Z",4.3999999999999995,{}],["2016-05-12T16:02:39.000Z",4.3,{}],["2016-05-12T16:02:50.000Z",4.3,{}],["2016-05-12T16:02:59.000Z",1.2,{}],["2016-05-12T16:03:00.000Z",4.5,{}],["2016-05-12T16:03:09.000Z",4.4,{}],["2016-05-12T16:03:20.000Z",5.2,{}],["2016-05-12T16:03:29.000Z",1.5,{}],["2016-05-12T16:03:30.000Z",5.1000000000000005,{}],["2016-05-12T16:03:39.000Z",5.1000000000000005,{}],["2016-05-12T16:03:50.000Z",4.5,{}],["2016-05-12T16:03:59.000Z",1.9,{}],["2016-05-12T16:04:00.000Z",4.6,{}],["2016-05-12T16:04:09.000Z",4.3999999999999995,{}],["2016-05-12T16:04:20.000Z",4.3,{}],["2016-05-12T16:04:29.000Z",1.2,{}],["2016-05-12T16:04:30.000Z",4.3,{}],["2016-05-12T16:04:39.000Z",4.3,{}],["2016-05-12T16:04:50.000Z",4.3,{}],["2016-05-12T16:04:59.000Z",1.1,{}],["2016-05-12T16:05:00.000Z",4.5,{}],["2016-05-12T16:05:09.000Z",4.4,{}],["2016-05-12T16:05:20.000Z",4.7,{}],["2016-05-12T16:05:29.000Z",1.2,{}],["2016-05-12T16:05:30.000Z",4.6,{}],["2016-05-12T16:05:39.000Z",4.6,{}],["2016-05-12T16:05:50.000Z",4.2,{}],["2016-05-12T16:05:59.000Z",1.8,{}],["2016-05-12T16:06:00.000Z",4.3,{}],["2016-05-12T16:06:09.000Z",4.5,{}],["2016-05-12T16:06:20.000Z",4.5,{}],["2016-05-12T16:06:29.000Z",1.4000000000000001,{}],["2016-05-12T16:06:30.000Z",4.4,{}],["2016-05-12T16:06:39.000Z",4.3,{}],["2016-05-12T16:06:51.000Z",4.5,{}],["2016-05-12T16:06:59.000Z",1.2,{}],["2016-05-12T16:07:00.000Z",4.3999999999999995,{}],["2016-05-12T16:07:09.000Z",4.3999999999999995,{}],["2016-05-12T16:07:21.000Z",4.7,{}],["2016-05-12T16:07:29.000Z",1.2,{}],["2016-05-12T16:07:30.000Z",4.8,{}],["2016-05-12T16:07:39.000Z",4.8,{}],["2016-05-12T16:07:51.000Z",4.3,{}],["2016-05-12T16:07:59.000Z",1.8,{}],["2016-05-12T16:08:00.000Z",4.3,{}],["2016-05-12T16:08:10.000Z",4.5,{}],["2016-05-12T16:08:21.000Z",4.5,{}],["2016-05-12T16:08:29.000Z",1.1,{}],["2016-05-12T16:08:30.000Z",4.3999999999999995,{}],["2016-05-12T16:08:40.000Z",4.3999999999999995,{}],["2016-05-12T16:08:51.000Z",4.4,{}],["2016-05-12T16:08:59.000Z",1.4,{}],["2016-05-12T16:09:00.000Z",4.4,{}],["2016-05-12T16:09:10.000Z",4.4,{}],["2016-05-12T16:09:21.000Z",4.7,{}],["2016-05-12T16:09:29.000Z",1.3,{}],["2016-05-12T16:09:30.000Z",4.7,{}],["2016-05-12T16:09:40.000Z",4.8,{}],["2016-05-12T16:09:51.000Z",4.6000000000000005,{}],["2016-05-12T16:09:59.000Z",1.5,{}],["2016-05-12T16:10:00.000Z",4.7,{}],["2016-05-12T16:10:10.000Z",4.7,{}],["2016-05-12T16:10:21.000Z",4.5,{}],["2016-05-12T16:10:29.000Z",1.3,{}],["2016-05-12T16:10:30.000Z",4.5,{}],["2016-05-12T16:10:40.000Z",4.5,{}],["2016-05-12T16:10:51.000Z",4.3,{}],["2016-05-12T16:10:59.000Z",1.2,{}],["2016-05-12T16:11:00.000Z",4.4,{}],["2016-05-12T16:11:10.000Z",4.4,{}],["2016-05-12T16:11:21.000Z",5.0,{}],["2016-05-12T16:11:29.000Z",1.2,{}],["2016-05-12T16:11:30.000Z",4.9,{}],["2016-05-12T16:11:40.000Z",4.9,{}],["2016-05-12T16:11:51.000Z",4.3,{}],["2016-05-12T16:11:59.000Z",1.8,{}],["2016-05-12T16:12:00.000Z",4.3999999999999995,{}],["2016-05-12T16:12:10.000Z",4.3999999999999995,{}],["2016-05-12T16:12:21.000Z",4.4,{}],["2016-05-12T16:12:29.000Z",1.2,{}],["2016-05-12T16:12:30.000Z",4.4,{}],["2016-05-12T16:12:40.000Z",4.4,{}],["2016-05-12T16:12:51.000Z",4.2,{}],["2016-05-12T16:12:59.000Z",1.3,{}],["2016-05-12T16:13:00.000Z",4.4,{}],["2016-05-12T16:13:10.000Z",4.4,{}],["2016-05-12T16:13:21.000Z",4.5,{}],["2016-05-12T16:13:29.000Z",1.1,{}],["2016-05-12T16:13:30.000Z",4.5,{}],["2016-05-12T16:13:40.000Z",4.3999999999999995,{}],["2016-05-12T16:13:51.000Z",4.5,{}],["2016-05-12T16:13:59.000Z",1.9000000000000001,{}],["2016-05-12T16:14:00.000Z",4.4,{}],["2016-05-12T16:14:10.000Z",4.4,{}],["2016-05-12T16:14:21.000Z",4.3,{}],["2016-05-12T16:14:29.000Z",1.3,{}],["2016-05-12T16:14:30.000Z",4.4,{}],["2016-05-12T16:14:40.000Z",4.4,{}],["2016-05-12T16:14:51.000Z",4.5,{}],["2016-05-12T16:14:59.000Z",1.4,{}],["2016-05-12T16:15:00.000Z",4.4,{}],["2016-05-12T16:15:10.000Z",4.5,{}],["2016-05-12T16:15:21.000Z",5.1,{}],["2016-05-12T16:15:30.000Z",1.3,{}],["2016-05-12T16:15:30.000Z",5.0,{}],["2016-05-12T16:15:40.000Z",5.0,{}],["2016-05-12T16:15:51.000Z",4.2,{}],["2016-05-12T16:16:00.000Z",1.7,{}],["2016-05-12T16:16:00.000Z",4.2,{}],["2016-05-12T16:16:10.000Z",4.3,{}],["2016-05-12T16:16:21.000Z",4.3,{}],["2016-05-12T16:16:30.000Z",1.2,{}],["2016-05-12T16:16:30.000Z",4.3,{}],["2016-05-12T16:16:40.000Z",4.3,{}],["2016-05-12T16:16:51.000Z",4.3,{}],["2016-05-12T16:17:00.000Z",3.0,{}],["2016-05-12T16:17:00.000Z",4.3999999999999995,{}],["2016-05-12T16:17:10.000Z",4.5,{}],["2016-05-12T16:17:21.000Z",5.4,{}],["2016-05-12T16:17:30.000Z",1.2,{}],["2016-05-12T16:17:30.000Z",5.4,{}],["2016-05-12T16:17:40.000Z",5.2,{}],["2016-05-12T16:17:51.000Z",4.3,{}],["2016-05-12T16:18:00.000Z",4.2,{}],["2016-05-12T16:18:00.000Z",1.4000000000000001,{}],["2016-05-12T16:18:10.000Z",4.3,{}],["2016-05-12T16:18:21.000Z",4.4,{}],["2016-05-12T16:18:30.000Z",4.3,{}],["2016-05-12T16:18:30.000Z",1.1,{}],["2016-05-12T16:18:40.000Z",4.4,{}],["2016-05-12T16:18:51.000Z",4.3999999999999995,{}],["2016-05-12T16:19:00.000Z",1.5,{}],["2016-05-12T16:19:00.000Z",4.5,{}],["2016-05-12T16:19:10.000Z",4.5,{}],["2016-05-12T16:19:21.000Z",5.1000000000000005,{}],["2016-05-12T16:19:30.000Z",5.1000000000000005,{}],["2016-05-12T16:19:30.000Z",1.3,{}],["2016-05-12T16:19:40.000Z",4.9,{}],["2016-05-12T16:19:51.000Z",4.5,{}],["2016-05-12T16:20:00.000Z",1.3,{}],["2016-05-12T16:20:01.000Z",4.4,{}],["2016-05-12T16:20:10.000Z",4.4,{}],["2016-05-12T16:20:21.000Z",4.2,{}],["2016-05-12T16:20:30.000Z",1.4000000000000001,{}],["2016-05-12T16:20:31.000Z",4.3999999999999995,{}],["2016-05-12T16:20:40.000Z",4.3999999999999995,{}],["2016-05-12T16:20:51.000Z",4.3999999999999995,{}],["2016-05-12T16:21:00.000Z",1.3,{}],["2016-05-12T16:21:01.000Z",4.4,{}],["2016-05-12T16:21:10.000Z",4.4,{}],["2016-05-12T16:21:21.000Z",5.1000000000000005,{}],["2016-05-12T16:21:30.000Z",1.3,{}],["2016-05-12T16:21:31.000Z",4.9,{}],["2016-05-12T16:21:40.000Z",4.9,{}],["2016-05-12T16:21:51.000Z",4.3,{}],["2016-05-12T16:22:00.000Z",1.2,{}],["2016-05-12T16:22:01.000Z",4.6000000000000005,{}],["2016-05-12T16:22:10.000Z",7.1000000000000005,{}],["2016-05-12T16:22:21.000Z",7.1000000000000005,{}],["2016-05-12T16:22:30.000Z",1.4000000000000001,{}],["2016-05-12T16:22:31.000Z",6.9,{}],["2016-05-12T16:22:40.000Z",4.3,{}],["2016-05-12T16:22:51.000Z",4.6,{}],["2016-05-12T16:23:00.000Z",1.3,{}],["2016-05-12T16:23:01.000Z",4.5,{}],["2016-05-12T16:23:10.000Z",4.5,{}],["2016-05-12T16:23:21.000Z",4.2,{}],["2016-05-12T16:23:30.000Z",1.1,{}],["2016-05-12T16:23:31.000Z",4.3,{}],["2016-05-12T16:23:40.000Z",4.4,{}],["2016-05-12T16:23:51.000Z",4.3,{}],["2016-05-12T16:24:00.000Z",1.3,{}],["2016-05-12T16:24:01.000Z",4.4,{}],["2016-05-12T16:24:10.000Z",5.3,{}],["2016-05-12T16:24:21.000Z",5.4,{}],["2016-05-12T16:24:30.000Z",1.4000000000000001,{}],["2016-05-12T16:24:31.000Z",5.5,{}],["2016-05-12T16:24:40.000Z",4.5,{}],["2016-05-12T16:24:51.000Z",4.4,{}],["2016-05-12T16:25:00.000Z",1.5999999999999999,{}],["2016-05-12T16:25:01.000Z",4.3999999999999995,{}],["2016-05-12T16:25:10.000Z",4.3999999999999995,{}],["2016-05-12T16:25:21.000Z",4.5,{}],["2016-05-12T16:25:30.000Z",1.2,{}],["2016-05-12T16:25:31.000Z",4.5,{}],["2016-05-12T16:25:40.000Z",4.4,{}],["2016-05-12T16:25:51.000Z",4.4,{}],["2016-05-12T16:26:00.000Z",1.2,{}],["2016-05-12T16:26:01.000Z",4.3,{}],["2016-05-12T16:26:10.000Z",4.5,{}],["2016-05-12T16:26:21.000Z",4.8,{}],["2016-05-12T16:26:30.000Z",1.3,{}],["2016-05-12T16:26:31.000Z",4.9,{}],["2016-05-12T16:26:40.000Z",4.8999999999999995,{}],["2016-05-12T16:26:51.000Z",4.7,{}],["2016-05-12T16:27:00.000Z",1.7,{}],["2016-05-12T16:27:01.000Z",4.3999999999999995,{}],["2016-05-12T16:27:10.000Z",4.3,{}],["2016-05-12T16:27:21.000Z",4.5,{}],["2016-05-12T16:27:30.000Z",1.3,{}],["2016-05-12T16:27:31.000Z",4.6000000000000005,{}],["2016-05-12T16:27:41.000Z",4.5,{}],["2016-05-12T16:27:51.000Z",4.4,{}],["2016-05-12T16:28:00.000Z",1.2,{}],["2016-05-12T16:28:01.000Z",4.3999999999999995,{}],["2016-05-12T16:28:10.000Z",4.8,{}],["2016-05-12T16:28:22.000Z",4.8999999999999995,{}],["2016-05-12T16:28:30.000Z",1.3,{}],["2016-05-12T16:28:31.000Z",4.9,{}],["2016-05-12T16:28:40.000Z",4.4,{}],["2016-05-12T16:28:52.000Z",4.3,{}],["2016-05-12T16:29:00.000Z",1.5,{}],["2016-05-12T16:29:01.000Z",4.3,{}],["2016-05-12T16:29:10.000Z",4.3,{}],["2016-05-12T16:29:22.000Z",4.4,{}],["2016-05-12T16:29:30.000Z",1.3,{}],["2016-05-12T16:29:31.000Z",4.4,{}],["2016-05-12T16:29:40.000Z",4.3,{}],["2016-05-12T16:29:52.000Z",4.2,{}],["2016-05-12T16:30:00.000Z",1.5999999999999999,{}],["2016-05-12T16:30:01.000Z",4.2,{}],["2016-05-12T16:30:11.000Z",4.3999999999999995,{}],["2016-05-12T16:30:22.000Z",4.5,{}],["2016-05-12T16:30:30.000Z",2.0,{}],["2016-05-12T16:30:31.000Z",4.6,{}],["2016-05-12T16:30:41.000Z",4.5,{}],["2016-05-12T16:30:52.000Z",4.4,{}],["2016-05-12T16:31:00.000Z",1.8,{}],["2016-05-12T16:31:01.000Z",4.6000000000000005,{}],["2016-05-12T16:31:11.000Z",4.6000000000000005,{}],["2016-05-12T16:31:22.000Z",5.1000000000000005,{}],["2016-05-12T16:31:30.000Z",1.3,{}],["2016-05-12T16:31:31.000Z",5.0,{}],["2016-05-12T16:31:41.000Z",5.1000000000000005,{}],["2016-05-12T16:31:52.000Z",4.7,{}],["2016-05-12T16:32:00.000Z",1.2,{}],["2016-05-12T16:32:01.000Z",4.4,{}],["2016-05-12T16:32:11.000Z",4.6,{}],["2016-05-12T16:32:22.000Z",4.7,{}],["2016-05-12T16:32:30.000Z",1.3,{}],["2016-05-12T16:32:31.000Z",4.6000000000000005,{}],["2016-05-12T16:32:41.000Z",4.5,{}],["2016-05-12T16:32:52.000Z",4.5,{}],["2016-05-12T16:33:00.000Z",2.0,{}],["2016-05-12T16:33:01.000Z",4.3,{}],["2016-05-12T16:33:11.000Z",4.3,{}],["2016-05-12T16:33:22.000Z",4.2,{}],["2016-05-12T16:33:30.000Z",1.2,{}],["2016-05-12T16:33:31.000Z",4.5,{}],["2016-05-12T16:33:41.000Z",4.5,{}],["2016-05-12T16:33:52.000Z",4.3999999999999995,{}],["2016-05-12T16:34:00.000Z",1.2,{}],["2016-05-12T16:34:01.000Z",4.3,{}],["2016-05-12T16:34:11.000Z",5.0,{}],["2016-05-12T16:34:22.000Z",5.1000000000000005,{}],["2016-05-12T16:34:30.000Z",1.2,{}],["2016-05-12T16:34:31.000Z",5.1000000000000005,{}],["2016-05-12T16:34:41.000Z",4.4,{}],["2016-05-12T16:34:52.000Z",4.4,{}],["2016-05-12T16:35:00.000Z",1.3,{}],["2016-05-12T16:35:01.000Z",4.4,{}],["2016-05-12T16:35:11.000Z",4.3999999999999995,{}],["2016-05-12T16:35:22.000Z",4.3999999999999995,{}],["2016-05-12T16:35:30.000Z",1.1,{}],["2016-05-12T16:35:31.000Z",4.4,{}],["2016-05-12T16:35:41.000Z",4.4,{}],["2016-05-12T16:35:52.000Z",4.4,{}],["2016-05-12T16:36:00.000Z",1.5,{}],["2016-05-12T16:36:01.000Z",4.3,{}],["2016-05-12T16:36:11.000Z",4.9,{}],["2016-05-12T16:36:22.000Z",5.0,{}],["2016-05-12T16:36:30.000Z",1.1,{}],["2016-05-12T16:36:31.000Z",5.2,{}],["2016-05-12T16:36:41.000Z",5.8,{}],["2016-05-12T16:36:52.000Z",5.7,{}],["2016-05-12T16:37:00.000Z",1.7,{}],["2016-05-12T16:37:01.000Z",5.8,{}],["2016-05-12T16:37:11.000Z",6.0,{}],["2016-05-12T16:37:22.000Z",5.8,{}],["2016-05-12T16:37:30.000Z",1.3,{}],["2016-05-12T16:37:31.000Z",5.7,{}],["2016-05-12T16:37:41.000Z",4.5,{}],["2016-05-12T16:37:52.000Z",4.4,{}],["2016-05-12T16:38:00.000Z",1.4000000000000001,{}],["2016-05-12T16:38:01.000Z",4.3,{}],["2016-05-12T16:38:11.000Z",4.2,{}],["2016-05-12T16:38:22.000Z",4.2,{}],["2016-05-12T16:38:30.000Z",1.2,{}],["2016-05-12T16:38:31.000Z",4.3,{}],["2016-05-12T16:38:41.000Z",4.3999999999999995,{}],["2016-05-12T16:38:52.000Z",4.3999999999999995,{}],["2016-05-12T16:39:00.000Z",1.5999999999999999,{}],["2016-05-12T16:39:01.000Z",4.5,{}],["2016-05-12T16:39:11.000Z",4.9,{}],["2016-05-12T16:39:22.000Z",4.9,{}],["2016-05-12T16:39:31.000Z",4.9,{}],["2016-05-12T16:39:31.000Z",1.1,{}],["2016-05-12T16:39:41.000Z",4.5,{}],["2016-05-12T16:39:52.000Z",4.6000000000000005,{}],["2016-05-12T16:40:01.000Z",1.3,{}],["2016-05-12T16:40:01.000Z",4.3,{}],["2016-05-12T16:40:11.000Z",4.2,{}],["2016-05-12T16:40:22.000Z",4.4,{}],["2016-05-12T16:40:31.000Z",1.3,{}],["2016-05-12T16:40:31.000Z",4.4,{}],["2016-05-12T16:40:41.000Z",4.4,{}],["2016-05-12T16:40:52.000Z",4.5,{}],["2016-05-12T16:41:01.000Z",4.5,{}],["2016-05-12T16:41:01.000Z",1.5,{}],["2016-05-12T16:41:11.000Z",4.8,{}],["2016-05-12T16:41:22.000Z",4.5,{}],["2016-05-12T16:41:31.000Z",1.3,{}],["2016-05-12T16:41:31.000Z",4.5,{}],["2016-05-12T16:41:41.000Z",4.4,{}],["2016-05-12T16:41:52.000Z",4.4,{}],["2016-05-12T16:42:01.000Z",4.4,{}],["2016-05-12T16:42:01.000Z",1.3,{}],["2016-05-12T16:42:11.000Z",4.3,{}],["2016-05-12T16:42:22.000Z",4.4,{}],["2016-05-12T16:42:31.000Z",1.2,{}],["2016-05-12T16:42:31.000Z",4.5,{}],["2016-05-12T16:42:41.000Z",4.5,{}],["2016-05-12T16:42:52.000Z",4.4,{}],["2016-05-12T16:43:01.000Z",1.7,{}],["2016-05-12T16:43:02.000Z",4.3,{}],["2016-05-12T16:43:11.000Z",4.6,{}],["2016-05-12T16:43:22.000Z",4.6,{}],["2016-05-12T16:43:31.000Z",1.2,{}],["2016-05-12T16:43:32.000Z",4.6000000000000005,{}],["2016-05-12T16:43:41.000Z",4.3,{}],["2016-05-12T16:43:52.000Z",4.3,{}],["2016-05-12T16:44:01.000Z",1.2,{}],["2016-05-12T16:44:02.000Z",4.3,{}],["2016-05-12T16:44:11.000Z",4.3,{}],["2016-05-12T16:44:22.000Z",4.4,{}],["2016-05-12T16:44:31.000Z",1.3,{}],["2016-05-12T16:44:32.000Z",4.5,{}],["2016-05-12T16:44:41.000Z",4.6000000000000005,{}],["2016-05-12T16:44:52.000Z",4.4,{}],["2016-05-12T16:45:01.000Z",2.0,{}],["2016-05-12T16:45:02.000Z",4.4,{}],["2016-05-12T16:45:11.000Z",4.8,{}],["2016-05-12T16:45:22.000Z",4.8,{}],["2016-05-12T16:45:31.000Z",2.0,{}],["2016-05-12T16:45:32.000Z",4.8,{}],["2016-05-12T16:45:41.000Z",4.4,{}],["2016-05-12T16:45:52.000Z",4.4,{}],["2016-05-12T16:46:01.000Z",2.6,{}],["2016-05-12T16:46:02.000Z",4.4,{}],["2016-05-12T16:46:11.000Z",4.3,{}],["2016-05-12T16:46:22.000Z",4.6000000000000005,{}],["2016-05-12T16:46:31.000Z",1.3,{}],["2016-05-12T16:46:32.000Z",4.4,{}],["2016-05-12T16:46:41.000Z",4.5,{}],["2016-05-12T16:46:52.000Z",4.6000000000000005,{}],["2016-05-12T16:47:01.000Z",1.3,{}],["2016-05-12T16:47:02.000Z",4.7,{}],["2016-05-12T16:47:11.000Z",5.0,{}],["2016-05-12T16:47:22.000Z",4.7,{}],["2016-05-12T16:47:31.000Z",1.1,{}],["2016-05-12T16:47:32.000Z",4.6000000000000005,{}],["2016-05-12T16:47:41.000Z",4.3,{}],["2016-05-12T16:47:52.000Z",4.4,{}],["2016-05-12T16:48:01.000Z",1.8,{}],["2016-05-12T16:48:02.000Z",4.4,{}],["2016-05-12T16:48:11.000Z",4.5,{}],["2016-05-12T16:48:22.000Z",4.4,{}],["2016-05-12T16:48:31.000Z",1.2,{}],["2016-05-12T16:48:32.000Z",4.5,{}],["2016-05-12T16:48:41.000Z",4.7,{}],["2016-05-12T16:48:52.000Z",4.7,{}],["2016-05-12T16:49:01.000Z",1.2,{}],["2016-05-12T16:49:02.000Z",4.7,{}],["2016-05-12T16:49:11.000Z",4.7,{}],["2016-05-12T16:49:22.000Z",4.6,{}],["2016-05-12T16:49:31.000Z",1.2,{}],["2016-05-12T16:49:32.000Z",4.6000000000000005,{}],["2016-05-12T16:49:41.000Z",4.4,{}],["2016-05-12T16:49:52.000Z",4.6000000000000005,{}],["2016-05-12T16:50:01.000Z",1.5999999999999999,{}],["2016-05-12T16:50:02.000Z",4.6000000000000005,{}],["2016-05-12T16:50:11.000Z",4.3,{}],["2016-05-12T16:50:23.000Z",4.3,{}],["2016-05-12T16:50:31.000Z",1.2,{}],["2016-05-12T16:50:32.000Z",4.3999999999999995,{}],["2016-05-12T16:50:41.000Z",4.6,{}],["2016-05-12T16:50:53.000Z",4.6000000000000005,{}],["2016-05-12T16:51:01.000Z",1.2,{}],["2016-05-12T16:51:02.000Z",4.6000000000000005,{}],["2016-05-12T16:51:11.000Z",5.2,{}],["2016-05-12T16:51:23.000Z",6.2,{}],["2016-05-12T16:51:31.000Z",1.1,{}],["2016-05-12T16:51:32.000Z",6.2,{}],["2016-05-12T16:51:41.000Z",5.5,{}],["2016-05-12T16:51:53.000Z",4.4,{}],["2016-05-12T16:52:01.000Z",1.6,{}],["2016-05-12T16:52:02.000Z",4.6,{}],["2016-05-12T16:52:11.000Z",4.7,{}],["2016-05-12T16:52:23.000Z",4.6,{}],["2016-05-12T16:52:31.000Z",1.3,{}],["2016-05-12T16:52:32.000Z",4.6000000000000005,{}],["2016-05-12T16:52:41.000Z",4.6000000000000005,{}],["2016-05-12T16:52:53.000Z",4.6000000000000005,{}],["2016-05-12T16:53:01.000Z",1.1,{}],["2016-05-12T16:53:02.000Z",4.4,{}],["2016-05-12T16:53:11.000Z",4.4,{}],["2016-05-12T16:53:23.000Z",4.7,{}],["2016-05-12T16:53:31.000Z",1.3,{}],["2016-05-12T16:53:32.000Z",4.7,{}],["2016-05-12T16:53:41.000Z",5.0,{}],["2016-05-12T16:53:53.000Z",4.5,{}],["2016-05-12T16:54:01.000Z",1.5999999999999999,{}],["2016-05-12T16:54:02.000Z",4.5,{}],["2016-05-12T16:54:11.000Z",4.199999999999999,{}],["2016-05-12T16:54:23.000Z",4.3,{}],["2016-05-12T16:54:31.000Z",1.2,{}],["2016-05-12T16:54:32.000Z",4.4,{}],["2016-05-12T16:54:41.000Z",4.6000000000000005,{}],["2016-05-12T16:54:53.000Z",4.5,{}],["2016-05-12T16:55:01.000Z",1.4000000000000001,{}],["2016-05-12T16:55:02.000Z",4.6000000000000005,{}],["2016-05-12T16:55:11.000Z",4.5,{}],["2016-05-12T16:55:23.000Z",5.5,{}],["2016-05-12T16:55:31.000Z",1.3,{}],["2016-05-12T16:55:32.000Z",5.3,{}],["2016-05-12T16:55:42.000Z",5.2,{}],["2016-05-12T16:55:53.000Z",4.3,{}],["2016-05-12T16:56:01.000Z",1.5999999999999999,{}],["2016-05-12T16:56:02.000Z",4.3,{}],["2016-05-12T16:56:12.000Z",4.5,{}],["2016-05-12T16:56:23.000Z",4.6000000000000005,{}],["2016-05-12T16:56:31.000Z",1.3,{}],["2016-05-12T16:56:32.000Z",4.6000000000000005,{}],["2016-05-12T16:56:42.000Z",4.4,{}],["2016-05-12T16:56:53.000Z",4.3,{}],["2016-05-12T16:57:01.000Z",1.2,{}],["2016-05-12T16:57:02.000Z",4.5,{}],["2016-05-12T16:57:12.000Z",4.6,{}],["2016-05-12T16:57:23.000Z",5.0,{}],["2016-05-12T16:57:31.000Z",1.3,{}],["2016-05-12T16:57:32.000Z",4.8999999999999995,{}],["2016-05-12T16:57:42.000Z",4.8999999999999995,{}],["2016-05-12T16:57:53.000Z",4.6000000000000005,{}],["2016-05-12T16:58:01.000Z",1.5999999999999999,{}],["2016-05-12T16:58:02.000Z",4.7,{}],["2016-05-12T16:58:12.000Z",4.6000000000000005,{}],["2016-05-12T16:58:23.000Z",4.5,{}],["2016-05-12T16:58:31.000Z",1.2,{}],["2016-05-12T16:58:32.000Z",4.4,{}],["2016-05-12T16:58:42.000Z",4.4,{}],["2016-05-12T16:58:53.000Z",4.4,{}],["2016-05-12T16:59:02.000Z",4.6,{}],["2016-05-12T16:59:02.000Z",1.3,{}],["2016-05-12T16:59:12.000Z",4.5,{}],["2016-05-12T16:59:23.000Z",5.1000000000000005,{}],["2016-05-12T16:59:32.000Z",1.2,{}],["2016-05-12T16:59:32.000Z",5.1,{}],["2016-05-12T16:59:42.000Z",5.2,{}],["2016-05-12T16:59:53.000Z",4.8,{}],["2016-05-12T17:00:02.000Z",1.7,{}],["2016-05-12T17:00:02.000Z",4.6,{}],["2016-05-12T17:00:12.000Z",4.6,{}],["2016-05-12T17:00:23.000Z",4.3999999999999995,{}],["2016-05-12T17:00:32.000Z",1.1,{}],["2016-05-12T17:00:32.000Z",4.5,{}],["2016-05-12T17:00:42.000Z",4.7,{}],["2016-05-12T17:00:53.000Z",4.7,{}],["2016-05-12T17:01:02.000Z",1.3,{}],["2016-05-12T17:01:02.000Z",4.5,{}],["2016-05-12T17:01:12.000Z",4.6,{}],["2016-05-12T17:01:23.000Z",5.2,{}],["2016-05-12T17:01:32.000Z",1.3,{}],["2016-05-12T17:01:32.000Z",5.2,{}],["2016-05-12T17:01:42.000Z",5.0,{}],["2016-05-12T17:01:53.000Z",4.3999999999999995,{}],["2016-05-12T17:02:02.000Z",1.7,{}],["2016-05-12T17:02:02.000Z",4.6,{}],["2016-05-12T17:02:12.000Z",4.6,{}],["2016-05-12T17:02:23.000Z",4.5,{}],["2016-05-12T17:02:32.000Z",1.1,{}],["2016-05-12T17:02:32.000Z",4.5,{}],["2016-05-12T17:02:42.000Z",4.6000000000000005,{}],["2016-05-12T17:02:53.000Z",4.800000000000001,{}],["2016-05-12T17:03:02.000Z",1.4,{}],["2016-05-12T17:03:02.000Z",4.7,{}],["2016-05-12T17:03:12.000Z",4.5,{}],["2016-05-12T17:03:23.000Z",4.9,{}],["2016-05-12T17:03:32.000Z",1.3,{}],["2016-05-12T17:03:32.000Z",4.9,{}],["2016-05-12T17:03:42.000Z",5.0,{}],["2016-05-12T17:03:53.000Z",4.6000000000000005,{}],["2016-05-12T17:04:02.000Z",1.7,{}],["2016-05-12T17:04:03.000Z",4.4,{}],["2016-05-12T17:04:12.000Z",4.5,{}],["2016-05-12T17:04:23.000Z",4.5,{}],["2016-05-12T17:04:32.000Z",1.4000000000000001,{}],["2016-05-12T17:04:33.000Z",4.6000000000000005,{}],["2016-05-12T17:04:42.000Z",4.6000000000000005,{}],["2016-05-12T17:04:53.000Z",4.6000000000000005,{}],["2016-05-12T17:05:02.000Z",1.2,{}],["2016-05-12T17:05:03.000Z",4.6000000000000005,{}],["2016-05-12T17:05:12.000Z",4.5,{}],["2016-05-12T17:05:23.000Z",4.9,{}],["2016-05-12T17:05:32.000Z",1.2,{}],["2016-05-12T17:05:33.000Z",5.1000000000000005,{}],["2016-05-12T17:05:42.000Z",5.2,{}],["2016-05-12T17:05:53.000Z",4.7,{}],["2016-05-12T17:06:02.000Z",1.4000000000000001,{}],["2016-05-12T17:06:03.000Z",4.4,{}],["2016-05-12T17:06:12.000Z",4.7,{}],["2016-05-12T17:06:23.000Z",4.5,{}],["2016-05-12T17:06:32.000Z",1.3,{}],["2016-05-12T17:06:33.000Z",4.5,{}],["2016-05-12T17:06:42.000Z",4.5,{}],["2016-05-12T17:06:53.000Z",4.5,{}],["2016-05-12T17:07:02.000Z",1.3,{}],["2016-05-12T17:07:03.000Z",4.7,{}],["2016-05-12T17:07:12.000Z",4.9,{}],["2016-05-12T17:07:23.000Z",5.4,{}],["2016-05-12T17:07:32.000Z",1.5,{}],["2016-05-12T17:07:33.000Z",5.5,{}],["2016-05-12T17:07:42.000Z",5.4,{}],["2016-05-12T17:07:53.000Z",5.0,{}],["2016-05-12T17:08:02.000Z",1.9,{}],["2016-05-12T17:08:03.000Z",4.8,{}],["2016-05-12T17:08:12.000Z",4.9,{}],["2016-05-12T17:08:23.000Z",4.8,{}],["2016-05-12T17:08:32.000Z",1.3,{}],["2016-05-12T17:08:33.000Z",4.9,{}],["2016-05-12T17:08:42.000Z",4.8,{}],["2016-05-12T17:08:53.000Z",4.9,{}],["2016-05-12T17:09:02.000Z",1.5,{}],["2016-05-12T17:09:03.000Z",4.7,{}],["2016-05-12T17:09:12.000Z",4.7,{}],["2016-05-12T17:09:23.000Z",4.9,{}],["2016-05-12T17:09:32.000Z",1.2,{}],["2016-05-12T17:09:33.000Z",5.0,{}],["2016-05-12T17:09:42.000Z",4.9,{}],["2016-05-12T17:09:53.000Z",4.6000000000000005,{}],["2016-05-12T17:10:02.000Z",1.4,{}],["2016-05-12T17:10:03.000Z",4.5,{}],["2016-05-12T17:10:12.000Z",4.8999999999999995,{}],["2016-05-12T17:10:23.000Z",5.0,{}],["2016-05-12T17:10:32.000Z",1.2,{}],["2016-05-12T17:10:33.000Z",4.9,{}],["2016-05-12T17:10:42.000Z",4.5,{}],["2016-05-12T17:10:53.000Z",4.5,{}],["2016-05-12T17:11:02.000Z",1.2,{}],["2016-05-12T17:11:03.000Z",4.5,{}],["2016-05-12T17:11:12.000Z",4.8,{}],["2016-05-12T17:11:23.000Z",4.8,{}],["2016-05-12T17:11:32.000Z",1.2,{}],["2016-05-12T17:11:33.000Z",4.7,{}],["2016-05-12T17:11:42.000Z",4.7,{}],["2016-05-12T17:11:54.000Z",4.8999999999999995,{}],["2016-05-12T17:12:02.000Z",1.5,{}],["2016-05-12T17:12:03.000Z",5.0,{}],["2016-05-12T17:12:12.000Z",5.2,{}],["2016-05-12T17:12:24.000Z",5.1000000000000005,{}],["2016-05-12T17:12:32.000Z",1.2,{}],["2016-05-12T17:12:33.000Z",5.0,{}],["2016-05-12T17:12:42.000Z",4.8,{}],["2016-05-12T17:12:54.000Z",4.7,{}],["2016-05-12T17:13:02.000Z",3.5,{}],["2016-05-12T17:13:03.000Z",5.0,{}],["2016-05-12T17:13:12.000Z",5.0,{}],["2016-05-12T17:13:24.000Z",5.4,{}],["2016-05-12T17:13:32.000Z",1.3,{}],["2016-05-12T17:13:33.000Z",5.2,{}],["2016-05-12T17:13:42.000Z",5.2,{}],["2016-05-12T17:13:54.000Z",4.6000000000000005,{}],["2016-05-12T17:14:02.000Z",1.5,{}],["2016-05-12T17:14:03.000Z",4.7,{}],["2016-05-12T17:14:12.000Z",5.0,{}],["2016-05-12T17:14:24.000Z",5.2,{}],["2016-05-12T17:14:32.000Z",1.2,{}],["2016-05-12T17:14:33.000Z",5.0,{}],["2016-05-12T17:14:42.000Z",4.8,{}],["2016-05-12T17:14:54.000Z",4.8,{}],["2016-05-12T17:15:02.000Z",1.7,{}],["2016-05-12T17:15:03.000Z",4.8,{}],["2016-05-12T17:15:12.000Z",4.8,{}],["2016-05-12T17:15:24.000Z",5.2,{}],["2016-05-12T17:15:32.000Z",1.3,{}],["2016-05-12T17:15:33.000Z",5.2,{}],["2016-05-12T17:15:42.000Z",5.2,{}],["2016-05-12T17:15:54.000Z",4.8999999999999995,{}],["2016-05-12T17:16:02.000Z",1.3,{}],["2016-05-12T17:16:03.000Z",4.8,{}],["2016-05-12T17:16:12.000Z",4.9,{}],["2016-05-12T17:16:24.000Z",4.8,{}],["2016-05-12T17:16:32.000Z",1.2,{}],["2016-05-12T17:16:33.000Z",4.6000000000000005,{}],["2016-05-12T17:16:42.000Z",4.6000000000000005,{}],["2016-05-12T17:16:54.000Z",4.6000000000000005,{}],["2016-05-12T17:17:02.000Z",1.5,{}],["2016-05-12T17:17:03.000Z",4.7,{}],["2016-05-12T17:17:13.000Z",4.9,{}],["2016-05-12T17:17:24.000Z",5.6000000000000005,{}],["2016-05-12T17:17:32.000Z",1.3,{}],["2016-05-12T17:17:33.000Z",5.5,{}],["2016-05-12T17:17:43.000Z",5.5,{}],["2016-05-12T17:17:54.000Z",5.0,{}],["2016-05-12T17:18:02.000Z",1.3,{}],["2016-05-12T17:18:03.000Z",5.0,{}],["2016-05-12T17:18:13.000Z",4.7,{}],["2016-05-12T17:18:24.000Z",5.6000000000000005,{}],["2016-05-12T17:18:32.000Z",1.2,{}],["2016-05-12T17:18:33.000Z",6.7,{}],["2016-05-12T17:18:43.000Z",6.9,{}],["2016-05-12T17:18:54.000Z",5.8,{}],["2016-05-12T17:19:02.000Z",1.5999999999999999,{}],["2016-05-12T17:19:03.000Z",4.7,{}],["2016-05-12T17:19:13.000Z",4.9,{}],["2016-05-12T17:19:24.000Z",5.0,{}],["2016-05-12T17:19:32.000Z",1.2,{}],["2016-05-12T17:19:33.000Z",4.8,{}],["2016-05-12T17:19:43.000Z",4.6000000000000005,{}],["2016-05-12T17:19:54.000Z",4.7,{}],["2016-05-12T17:20:02.000Z",1.4,{}],["2016-05-12T17:20:03.000Z",4.8,{}],["2016-05-12T17:20:13.000Z",4.8,{}],["2016-05-12T17:20:24.000Z",4.8,{}],["2016-05-12T17:20:32.000Z",1.2,{}],["2016-05-12T17:20:33.000Z",5.7,{}],["2016-05-12T17:20:43.000Z",5.6000000000000005,{}],["2016-05-12T17:20:54.000Z",5.6000000000000005,{}],["2016-05-12T17:21:02.000Z",1.4,{}],["2016-05-12T17:21:03.000Z",4.7,{}],["2016-05-12T17:21:13.000Z",4.8,{}],["2016-05-12T17:21:24.000Z",4.7,{}],["2016-05-12T17:21:32.000Z",1.3,{}],["2016-05-12T17:21:33.000Z",4.8999999999999995,{}],["2016-05-12T17:21:43.000Z",4.8,{}],["2016-05-12T17:21:54.000Z",4.7,{}],["2016-05-12T17:22:02.000Z",1.3,{}],["2016-05-12T17:22:03.000Z",4.7,{}],["2016-05-12T17:22:13.000Z",4.8,{}],["2016-05-12T17:22:24.000Z",5.0,{}],["2016-05-12T17:22:32.000Z",1.4000000000000001,{}],["2016-05-12T17:22:33.000Z",5.6000000000000005,{}],["2016-05-12T17:22:43.000Z",5.4,{}],["2016-05-12T17:22:54.000Z",5.3,{}],["2016-05-12T17:23:02.000Z",1.4,{}],["2016-05-12T17:23:04.000Z",4.6000000000000005,{}],["2016-05-12T17:23:13.000Z",4.6000000000000005,{}],["2016-05-12T17:23:24.000Z",4.9,{}],["2016-05-12T17:23:32.000Z",1.3,{}],["2016-05-12T17:23:34.000Z",4.9,{}],["2016-05-12T17:23:43.000Z",4.9,{}],["2016-05-12T17:23:54.000Z",4.6,{}],["2016-05-12T17:24:02.000Z",1.3,{}],["2016-05-12T17:24:04.000Z",4.7,{}],["2016-05-12T17:24:13.000Z",4.8,{}],["2016-05-12T17:24:24.000Z",5.0,{}],["2016-05-12T17:24:33.000Z",1.3,{}],["2016-05-12T17:24:34.000Z",5.2,{}],["2016-05-12T17:24:43.000Z",5.0,{}],["2016-05-12T17:24:54.000Z",4.8,{}],["2016-05-12T17:25:03.000Z",1.7,{}],["2016-05-12T17:25:04.000Z",4.7,{}],["2016-05-12T17:25:13.000Z",5.0,{}],["2016-05-12T17:25:24.000Z",5.0,{}],["2016-05-12T17:25:33.000Z",1.2,{}],["2016-05-12T17:25:34.000Z",5.0,{}],["2016-05-12T17:25:43.000Z",4.6000000000000005,{}],["2016-05-12T17:25:54.000Z",4.7,{}],["2016-05-12T17:26:03.000Z",1.2,{}],["2016-05-12T17:26:04.000Z",4.8,{}],["2016-05-12T17:26:13.000Z",4.8,{}],["2016-05-12T17:26:24.000Z",4.8999999999999995,{}],["2016-05-12T17:26:33.000Z",1.3,{}],["2016-05-12T17:26:34.000Z",5.0,{}],["2016-05-12T17:26:43.000Z",5.3,{}],["2016-05-12T17:26:54.000Z",5.1000000000000005,{}],["2016-05-12T17:27:03.000Z",1.6,{}],["2016-05-12T17:27:04.000Z",5.0,{}],["2016-05-12T17:27:13.000Z",4.8,{}],["2016-05-12T17:27:24.000Z",4.8,{}],["2016-05-12T17:27:33.000Z",1.2,{}],["2016-05-12T17:27:34.000Z",5.0,{}],["2016-05-12T17:27:43.000Z",4.8999999999999995,{}],["2016-05-12T17:27:54.000Z",4.7,{}],["2016-05-12T17:28:03.000Z",1.2,{}],["2016-05-12T17:28:04.000Z",4.5,{}],["2016-05-12T17:28:13.000Z",4.6000000000000005,{}],["2016-05-12T17:28:24.000Z",4.8,{}],["2016-05-12T17:28:33.000Z",1.4000000000000001,{}],["2016-05-12T17:28:34.000Z",5.2,{}],["2016-05-12T17:28:43.000Z",5.1000000000000005,{}],["2016-05-12T17:28:54.000Z",4.9,{}],["2016-05-12T17:29:03.000Z",1.5,{}],["2016-05-12T17:29:04.000Z",4.6000000000000005,{}],["2016-05-12T17:29:13.000Z",4.8,{}],["2016-05-12T17:29:24.000Z",4.9,{}],["2016-05-12T17:29:33.000Z",1.4,{}],["2016-05-12T17:29:34.000Z",4.9,{}],["2016-05-12T17:29:43.000Z",4.8999999999999995,{}],["2016-05-12T17:29:54.000Z",4.8,{}],["2016-05-12T17:30:03.000Z",1.3,{}],["2016-05-12T17:30:04.000Z",4.8,{}],["2016-05-12T17:30:13.000Z",5.0,{}],["2016-05-12T17:30:24.000Z",5.0,{}],["2016-05-12T17:30:33.000Z",1.4000000000000001,{}],["2016-05-12T17:30:34.000Z",5.3,{}],["2016-05-12T17:30:43.000Z",5.1000000000000005,{}],["2016-05-12T17:30:54.000Z",5.3,{}],["2016-05-12T17:31:03.000Z",1.7,{}],["2016-05-12T17:31:04.000Z",4.8,{}],["2016-05-12T17:31:13.000Z",4.7,{}],["2016-05-12T17:31:24.000Z",4.8,{}],["2016-05-12T17:31:33.000Z",1.2,{}],["2016-05-12T17:31:34.000Z",4.8,{}],["2016-05-12T17:31:43.000Z",4.8,{}],["2016-05-12T17:31:54.000Z",4.7,{}],["2016-05-12T17:32:03.000Z",1.4000000000000001,{}],["2016-05-12T17:32:04.000Z",4.7,{}],["2016-05-12T17:32:13.000Z",4.8,{}],["2016-05-12T17:32:24.000Z",5.1000000000000005,{}],["2016-05-12T17:32:33.000Z",1.2,{}],["2016-05-12T17:32:34.000Z",5.4,{}],["2016-05-12T17:32:43.000Z",5.5,{}],["2016-05-12T17:32:55.000Z",5.2,{}],["2016-05-12T17:33:03.000Z",1.5,{}],["2016-05-12T17:33:04.000Z",4.699999999999999,{}],["2016-05-12T17:33:13.000Z",4.699999999999999,{}],["2016-05-12T17:33:25.000Z",4.9,{}],["2016-05-12T17:33:33.000Z",1.3,{}],["2016-05-12T17:33:34.000Z",4.9,{}],["2016-05-12T17:33:43.000Z",4.7,{}],["2016-05-12T17:33:55.000Z",4.8,{}],["2016-05-12T17:34:03.000Z",1.4000000000000001,{}],["2016-05-12T17:34:04.000Z",4.699999999999999,{}],["2016-05-12T17:34:13.000Z",4.699999999999999,{}],["2016-05-12T17:34:25.000Z",4.6,{}],["2016-05-12T17:34:33.000Z",1.2,{}],["2016-05-12T17:34:34.000Z",4.9,{}],["2016-05-12T17:34:43.000Z",4.9,{}],["2016-05-12T17:34:55.000Z",4.6,{}],["2016-05-12T17:35:03.000Z",1.5999999999999999,{}],["2016-05-12T17:35:04.000Z",4.5,{}],["2016-05-12T17:35:13.000Z",4.7,{}],["2016-05-12T17:35:25.000Z",4.8,{}],["2016-05-12T17:35:33.000Z",1.4000000000000001,{}],["2016-05-12T17:35:34.000Z",4.6,{}],["2016-05-12T17:35:43.000Z",4.6,{}],["2016-05-12T17:35:55.000Z",4.3,{}],["2016-05-12T17:36:03.000Z",1.2,{}],["2016-05-12T17:36:04.000Z",4.3,{}],["2016-05-12T17:36:13.000Z",4.3999999999999995,{}],["2016-05-12T17:36:25.000Z",4.6,{}],["2016-05-12T17:36:33.000Z",1.3,{}],["2016-05-12T17:36:34.000Z",5.0,{}],["2016-05-12T17:36:43.000Z",5.0,{}],["2016-05-12T17:36:55.000Z",4.9,{}],["2016-05-12T17:37:03.000Z",1.5999999999999999,{}],["2016-05-12T17:37:04.000Z",4.6,{}],["2016-05-12T17:37:13.000Z",4.4,{}],["2016-05-12T17:37:25.000Z",4.6,{}],["2016-05-12T17:37:33.000Z",1.3,{}],["2016-05-12T17:37:34.000Z",4.6,{}],["2016-05-12T17:37:43.000Z",4.5,{}],["2016-05-12T17:37:55.000Z",4.3,{}],["2016-05-12T17:38:03.000Z",1.3,{}],["2016-05-12T17:38:04.000Z",4.4,{}],["2016-05-12T17:38:13.000Z",4.5,{}],["2016-05-12T17:38:25.000Z",4.8,{}],["2016-05-12T17:38:33.000Z",1.1,{}],["2016-05-12T17:38:34.000Z",5.199999999999999,{}],["2016-05-12T17:38:44.000Z",5.199999999999999,{}],["2016-05-12T17:38:55.000Z",4.9,{}],["2016-05-12T17:39:03.000Z",1.2,{}],["2016-05-12T17:39:04.000Z",4.3,{}],["2016-05-12T17:39:14.000Z",4.3,{}],["2016-05-12T17:39:25.000Z",4.5,{}],["2016-05-12T17:39:33.000Z",1.2000000000000002,{}],["2016-05-12T17:39:34.000Z",4.5,{}],["2016-05-12T17:39:44.000Z",4.5,{}],["2016-05-12T17:39:55.000Z",4.3,{}],["2016-05-12T17:40:03.000Z",1.0,{}],["2016-05-12T17:40:04.000Z",4.4,{}],["2016-05-12T17:40:14.000Z",4.3,{}],["2016-05-12T17:40:25.000Z",4.4,{}],["2016-05-12T17:40:33.000Z",3.2,{}],["2016-05-12T17:40:34.000Z",4.699999999999999,{}],["2016-05-12T17:40:44.000Z",5.0,{}],["2016-05-12T17:40:55.000Z",4.8999999999999995,{}],["2016-05-12T17:41:03.000Z",1.0,{}],["2016-05-12T17:41:04.000Z",4.5,{}],["2016-05-12T17:41:14.000Z",4.3,{}],["2016-05-12T17:41:25.000Z",4.4,{}],["2016-05-12T17:41:33.000Z",1.2000000000000002,{}],["2016-05-12T17:41:34.000Z",4.6,{}],["2016-05-12T17:41:44.000Z",4.6,{}],["2016-05-12T17:41:55.000Z",4.6,{}],["2016-05-12T17:42:03.000Z",1.0,{}],["2016-05-12T17:42:04.000Z",4.5,{}],["2016-05-12T17:42:14.000Z",4.5,{}],["2016-05-12T17:42:25.000Z",4.6,{}],["2016-05-12T17:42:33.000Z",2.2,{}],["2016-05-12T17:42:34.000Z",5.0,{}],["2016-05-12T17:42:44.000Z",5.1,{}],["2016-05-12T17:42:55.000Z",4.8,{}],["2016-05-12T17:43:03.000Z",1.0,{}],["2016-05-12T17:43:05.000Z",4.3999999999999995,{}],["2016-05-12T17:43:14.000Z",4.6,{}],["2016-05-12T17:43:25.000Z",4.5,{}],["2016-05-12T17:43:33.000Z",1.1,{}],["2016-05-12T17:43:35.000Z",4.6,{}],["2016-05-12T17:43:44.000Z",4.5,{}],["2016-05-12T17:43:55.000Z",4.5,{}],["2016-05-12T17:44:03.000Z",1.0,{}],["2016-05-12T17:44:05.000Z",4.6,{}],["2016-05-12T17:44:14.000Z",4.7,{}],["2016-05-12T17:44:25.000Z",4.8,{}],["2016-05-12T17:44:34.000Z",1.9,{}],["2016-05-12T17:44:35.000Z",5.2,{}],["2016-05-12T17:44:44.000Z",5.0,{}],["2016-05-12T17:44:55.000Z",5.1,{}],["2016-05-12T17:45:04.000Z",1.1,{}],["2016-05-12T17:45:05.000Z",4.5,{}],["2016-05-12T17:45:14.000Z",4.5,{}],["2016-05-12T17:45:25.000Z",4.5,{}],["2016-05-12T17:45:34.000Z",1.1,{}],["2016-05-12T17:45:35.000Z",4.7,{}],["2016-05-12T17:45:44.000Z",4.7,{}],["2016-05-12T17:45:55.000Z",4.6,{}],["2016-05-12T17:46:04.000Z",1.0,{}],["2016-05-12T17:46:05.000Z",4.4,{}],["2016-05-12T17:46:14.000Z",4.4,{}],["2016-05-12T17:46:25.000Z",6.8999999999999995,{}],["2016-05-12T17:46:34.000Z",1.9,{}],["2016-05-12T17:46:35.000Z",6.8999999999999995,{}],["2016-05-12T17:46:44.000Z",6.8,{}],["2016-05-12T17:46:55.000Z",4.5,{}],["2016-05-12T17:47:04.000Z",1.1,{}],["2016-05-12T17:47:05.000Z",4.4,{}],["2016-05-12T17:47:14.000Z",4.5,{}],["2016-05-12T17:47:25.000Z",4.7,{}],["2016-05-12T17:47:34.000Z",1.0,{}],["2016-05-12T17:47:35.000Z",4.8,{}],["2016-05-12T17:47:44.000Z",4.9,{}],["2016-05-12T17:47:55.000Z",4.6,{}],["2016-05-12T17:48:04.000Z",1.0,{}],["2016-05-12T17:48:05.000Z",4.5,{}],["2016-05-12T17:48:14.000Z",4.5,{}],["2016-05-12T17:48:25.000Z",5.3,{}],["2016-05-12T17:48:34.000Z",1.7,{}],["2016-05-12T17:48:35.000Z",5.2,{}],["2016-05-12T17:48:44.000Z",5.4,{}],["2016-05-12T17:48:55.000Z",4.7,{}],["2016-05-12T17:49:04.000Z",1.2,{}],["2016-05-12T17:49:05.000Z",4.7,{}],["2016-05-12T17:49:14.000Z",4.6,{}],["2016-05-12T17:49:25.000Z",4.7,{}],["2016-05-12T17:49:34.000Z",1.0,{}],["2016-05-12T17:49:35.000Z",4.6,{}],["2016-05-12T17:49:44.000Z",4.7,{}],["2016-05-12T17:49:55.000Z",4.699999999999999,{}],["2016-05-12T17:50:04.000Z",1.1,{}],["2016-05-12T17:50:05.000Z",4.699999999999999,{}],["2016-05-12T17:50:14.000Z",4.6,{}],["2016-05-12T17:50:25.000Z",4.8,{}],["2016-05-12T17:50:34.000Z",1.4,{}],["2016-05-12T17:50:35.000Z",4.8,{}],["2016-05-12T17:50:44.000Z",4.8,{}],["2016-05-12T17:50:55.000Z",4.5,{}],["2016-05-12T17:51:04.000Z",1.1,{}],["2016-05-12T17:51:05.000Z",4.4,{}],["2016-05-12T17:51:14.000Z",4.4,{}],["2016-05-12T17:51:25.000Z",4.6,{}],["2016-05-12T17:51:34.000Z",1.2000000000000002,{}],["2016-05-12T17:51:35.000Z",4.6,{}],["2016-05-12T17:51:44.000Z",4.6,{}],["2016-05-12T17:51:55.000Z",4.5,{}],["2016-05-12T17:52:04.000Z",1.0,{}],["2016-05-12T17:52:05.000Z",4.5,{}],["2016-05-12T17:52:14.000Z",4.6,{}],["2016-05-12T17:52:26.000Z",5.4,{}],["2016-05-12T17:52:34.000Z",1.6,{}],["2016-05-12T17:52:35.000Z",5.4,{}],["2016-05-12T17:52:44.000Z",5.4,{}],["2016-05-12T17:52:56.000Z",4.6,{}],["2016-05-12T17:53:04.000Z",1.1,{}],["2016-05-12T17:53:05.000Z",4.7,{}],["2016-05-12T17:53:14.000Z",4.6,{}],["2016-05-12T17:53:26.000Z",4.6,{}],["2016-05-12T17:53:34.000Z",1.2,{}],["2016-05-12T17:53:35.000Z",4.6,{}],["2016-05-12T17:53:44.000Z",4.6,{}],["2016-05-12T17:53:56.000Z",4.699999999999999,{}],["2016-05-12T17:54:04.000Z",1.0,{}],["2016-05-12T17:54:05.000Z",4.6,{}],["2016-05-12T17:54:14.000Z",4.6,{}],["2016-05-12T17:54:26.000Z",5.1,{}],["2016-05-12T17:54:34.000Z",1.4,{}],["2016-05-12T17:54:35.000Z",5.2,{}],["2016-05-12T17:54:44.000Z",5.1,{}],["2016-05-12T17:54:56.000Z",4.6,{}],["2016-05-12T17:55:04.000Z",1.0,{}],["2016-05-12T17:55:05.000Z",4.6,{}],["2016-05-12T17:55:14.000Z",4.5,{}],["2016-05-12T17:55:26.000Z",4.5,{}],["2016-05-12T17:55:34.000Z",1.2000000000000002,{}],["2016-05-12T17:55:35.000Z",4.699999999999999,{}],["2016-05-12T17:55:44.000Z",4.8,{}],["2016-05-12T17:55:56.000Z",5.1,{}],["2016-05-12T17:56:04.000Z",1.0,{}],["2016-05-12T17:56:05.000Z",4.9,{}],["2016-05-12T17:56:14.000Z",4.7,{}],["2016-05-12T17:56:26.000Z",4.8,{}],["2016-05-12T17:56:34.000Z",1.5,{}],["2016-05-12T17:56:35.000Z",5.2,{}],["2016-05-12T17:56:44.000Z",5.2,{}],["2016-05-12T17:56:56.000Z",5.0,{}],["2016-05-12T17:57:04.000Z",1.2000000000000002,{}],["2016-05-12T17:57:05.000Z",4.7,{}],["2016-05-12T17:57:14.000Z",4.9,{}],["2016-05-12T17:57:26.000Z",4.8,{}],["2016-05-12T17:57:34.000Z",1.1,{}],["2016-05-12T17:57:35.000Z",4.9,{}],["2016-05-12T17:57:44.000Z",4.6,{}],["2016-05-12T17:57:56.000Z",4.8,{}],["2016-05-12T17:58:04.000Z",1.1,{}],["2016-05-12T17:58:05.000Z",4.6,{}],["2016-05-12T17:58:14.000Z",4.7,{}],["2016-05-12T17:58:26.000Z",4.6,{}],["2016-05-12T17:58:34.000Z",1.4,{}],["2016-05-12T17:58:35.000Z",5.1,{}],["2016-05-12T17:58:44.000Z",5.1,{}],["2016-05-12T17:58:56.000Z",5.3,{}],["2016-05-12T17:59:04.000Z",1.1,{}],["2016-05-12T17:59:05.000Z",4.6,{}],["2016-05-12T17:59:15.000Z",4.6,{}],["2016-05-12T17:59:26.000Z",4.4,{}],["2016-05-12T17:59:34.000Z",1.3,{}],["2016-05-12T17:59:35.000Z",4.5,{}],["2016-05-12T17:59:45.000Z",4.5,{}],["2016-05-12T17:59:56.000Z",4.5,{}],["2016-05-12T18:00:04.000Z",1.0,{}],["2016-05-12T18:00:05.000Z",4.3999999999999995,{}],["2016-05-12T18:00:15.000Z",4.4,{}],["2016-05-12T18:00:26.000Z",4.5,{}],["2016-05-12T18:00:34.000Z",1.3,{}],["2016-05-12T18:00:35.000Z",4.9,{}],["2016-05-12T18:00:45.000Z",4.9,{}],["2016-05-12T18:00:56.000Z",4.9,{}],["2016-05-12T18:01:04.000Z",1.2,{}],["2016-05-12T18:01:05.000Z",4.5,{}],["2016-05-12T18:01:15.000Z",4.8,{}],["2016-05-12T18:01:26.000Z",4.8,{}],["2016-05-12T18:01:34.000Z",1.2,{}],["2016-05-12T18:01:35.000Z",4.699999999999999,{}],["2016-05-12T18:01:45.000Z",4.699999999999999,{}],["2016-05-12T18:01:56.000Z",4.4,{}],["2016-05-12T18:02:04.000Z",1.2,{}],["2016-05-12T18:02:05.000Z",4.6,{}],["2016-05-12T18:02:15.000Z",4.6,{}],["2016-05-12T18:02:26.000Z",4.7,{}],["2016-05-12T18:02:34.000Z",1.3,{}],["2016-05-12T18:02:35.000Z",5.3,{}],["2016-05-12T18:02:45.000Z",5.2,{}],["2016-05-12T18:02:56.000Z",5.2,{}],["2016-05-12T18:03:04.000Z",0.9,{}],["2016-05-12T18:03:05.000Z",4.5,{}],["2016-05-12T18:03:15.000Z",4.9,{}],["2016-05-12T18:03:26.000Z",4.8,{}],["2016-05-12T18:03:34.000Z",1.2000000000000002,{}],["2016-05-12T18:03:35.000Z",4.699999999999999,{}],["2016-05-12T18:03:45.000Z",4.6,{}],["2016-05-12T18:03:56.000Z",4.8,{}],["2016-05-12T18:04:04.000Z",1.0,{}],["2016-05-12T18:04:05.000Z",5.0,{}],["2016-05-12T18:04:15.000Z",4.8,{}],["2016-05-12T18:04:26.000Z",4.7,{}],["2016-05-12T18:04:34.000Z",1.2,{}],["2016-05-12T18:04:36.000Z",5.4,{}],["2016-05-12T18:04:45.000Z",5.3,{}],["2016-05-12T18:04:56.000Z",5.2,{}],["2016-05-12T18:05:04.000Z",1.0,{}],["2016-05-12T18:05:06.000Z",4.8,{}],["2016-05-12T18:05:15.000Z",4.8,{}],["2016-05-12T18:05:26.000Z",5.0,{}],["2016-05-12T18:05:34.000Z",1.2000000000000002,{}],["2016-05-12T18:05:36.000Z",4.6,{}],["2016-05-12T18:05:45.000Z",4.699999999999999,{}],["2016-05-12T18:05:56.000Z",4.5,{}],["2016-05-12T18:06:05.000Z",1.0,{}],["2016-05-12T18:06:06.000Z",4.6,{}],["2016-05-12T18:06:15.000Z",4.7,{}],["2016-05-12T18:06:26.000Z",4.7,{}],["2016-05-12T18:06:35.000Z",1.4,{}],["2016-05-12T18:06:36.000Z",4.7,{}],["2016-05-12T18:06:45.000Z",4.6,{}],["2016-05-12T18:06:56.000Z",4.8,{}],["2016-05-12T18:07:05.000Z",1.2,{}],["2016-05-12T18:07:06.000Z",4.7,{}],["2016-05-12T18:07:15.000Z",4.6,{}],["2016-05-12T18:07:26.000Z",4.5,{}],["2016-05-12T18:07:35.000Z",1.2,{}],["2016-05-12T18:07:36.000Z",4.6,{}],["2016-05-12T18:07:45.000Z",4.8,{}],["2016-05-12T18:07:56.000Z",4.699999999999999,{}],["2016-05-12T18:08:05.000Z",1.0,{}],["2016-05-12T18:08:06.000Z",4.8,{}],["2016-05-12T18:08:15.000Z",4.6,{}],["2016-05-12T18:08:26.000Z",4.8,{}],["2016-05-12T18:08:35.000Z",2.4,{}],["2016-05-12T18:08:36.000Z",5.2,{}],["2016-05-12T18:08:45.000Z",5.2,{}],["2016-05-12T18:08:56.000Z",5.199999999999999,{}],["2016-05-12T18:09:05.000Z",1.0,{}],["2016-05-12T18:09:06.000Z",4.6,{}],["2016-05-12T18:09:15.000Z",4.8,{}],["2016-05-12T18:09:26.000Z",4.8,{}],["2016-05-12T18:09:35.000Z",1.1,{}],["2016-05-12T18:09:36.000Z",4.8,{}],["2016-05-12T18:09:45.000Z",4.7,{}],["2016-05-12T18:09:56.000Z",4.6,{}],["2016-05-12T18:10:05.000Z",1.0,{}],["2016-05-12T18:10:06.000Z",4.8,{}],["2016-05-12T18:10:15.000Z",4.699999999999999,{}],["2016-05-12T18:10:26.000Z",4.8,{}],["2016-05-12T18:10:35.000Z",1.4000000000000001,{}],["2016-05-12T18:10:36.000Z",5.1,{}],["2016-05-12T18:10:45.000Z",5.0,{}],["2016-05-12T18:10:56.000Z",4.9,{}],["2016-05-12T18:11:05.000Z",1.0,{}],["2016-05-12T18:11:06.000Z",4.7,{}],["2016-05-12T18:11:15.000Z",4.9,{}],["2016-05-12T18:11:26.000Z",4.7,{}],["2016-05-12T18:11:35.000Z",1.1,{}],["2016-05-12T18:11:36.000Z",4.5,{}],["2016-05-12T18:11:45.000Z",4.4,{}],["2016-05-12T18:11:56.000Z",5.0,{}],["2016-05-12T18:12:05.000Z",1.0,{}],["2016-05-12T18:12:06.000Z",5.8999999999999995,{}],["2016-05-12T18:12:15.000Z",6.1,{}],["2016-05-12T18:12:26.000Z",6.1,{}],["2016-05-12T18:12:35.000Z",1.6,{}],["2016-05-12T18:12:36.000Z",6.199999999999999,{}],["2016-05-12T18:12:45.000Z",6.0,{}],["2016-05-12T18:12:57.000Z",5.8,{}],["2016-05-12T18:13:05.000Z",1.1,{}],["2016-05-12T18:13:06.000Z",5.6,{}],["2016-05-12T18:13:15.000Z",5.4,{}],["2016-05-12T18:13:27.000Z",5.5,{}],["2016-05-12T18:13:35.000Z",1.1,{}],["2016-05-12T18:13:36.000Z",4.7,{}],["2016-05-12T18:13:45.000Z",4.6,{}],["2016-05-12T18:13:57.000Z",4.5,{}],["2016-05-12T18:14:05.000Z",1.0,{}],["2016-05-12T18:14:06.000Z",4.5,{}],["2016-05-12T18:14:15.000Z",4.699999999999999,{}],["2016-05-12T18:14:27.000Z",4.6,{}],["2016-05-12T18:14:35.000Z",1.5,{}],["2016-05-12T18:14:36.000Z",4.6,{}],["2016-05-12T18:14:45.000Z",4.5,{}],["2016-05-12T18:14:57.000Z",4.5,{}],["2016-05-12T18:15:05.000Z",1.0,{}],["2016-05-12T18:15:06.000Z",4.9,{}],["2016-05-12T18:15:15.000Z",5.1,{}],["2016-05-12T18:15:27.000Z",5.0,{}],["2016-05-12T18:15:35.000Z",1.1,{}],["2016-05-12T18:15:36.000Z",4.5,{}],["2016-05-12T18:15:45.000Z",4.3,{}],["2016-05-12T18:15:57.000Z",6.1,{}],["2016-05-12T18:16:05.000Z",1.1,{}],["2016-05-12T18:16:06.000Z",6.5,{}],["2016-05-12T18:16:15.000Z",6.699999999999999,{}],["2016-05-12T18:16:27.000Z",4.8999999999999995,{}],["2016-05-12T18:16:35.000Z",1.3,{}],["2016-05-12T18:16:36.000Z",4.8,{}],["2016-05-12T18:16:45.000Z",4.5,{}],["2016-05-12T18:16:57.000Z",4.6,{}],["2016-05-12T18:17:05.000Z",1.1,{}],["2016-05-12T18:17:06.000Z",4.6,{}],["2016-05-12T18:17:15.000Z",4.7,{}],["2016-05-12T18:17:27.000Z",4.8999999999999995,{}],["2016-05-12T18:17:35.000Z",1.1,{}],["2016-05-12T18:17:36.000Z",4.699999999999999,{}],["2016-05-12T18:17:45.000Z",4.8,{}],["2016-05-12T18:17:57.000Z",5.3,{}],["2016-05-12T18:18:05.000Z",1.2000000000000002,{}],["2016-05-12T18:18:06.000Z",5.3,{}],["2016-05-12T18:18:15.000Z",5.2,{}],["2016-05-12T18:18:27.000Z",4.8,{}],["2016-05-12T18:18:35.000Z",1.5,{}],["2016-05-12T18:18:36.000Z",4.6,{}],["2016-05-12T18:18:46.000Z",4.6,{}],["2016-05-12T18:18:57.000Z",4.3999999999999995,{}],["2016-05-12T18:19:05.000Z",1.1,{}],["2016-05-12T18:19:06.000Z",4.8,{}],["2016-05-12T18:19:16.000Z",4.8,{}],["2016-05-12T18:19:27.000Z",4.8,{}],["2016-05-12T18:19:35.000Z",1.1,{}],["2016-05-12T18:19:36.000Z",4.7,{}],["2016-05-12T18:19:46.000Z",4.7,{}],["2016-05-12T18:19:57.000Z",4.7,{}],["2016-05-12T18:20:05.000Z",1.1,{}],["2016-05-12T18:20:06.000Z",4.8,{}],["2016-05-12T18:20:16.000Z",4.8,{}],["2016-05-12T18:20:27.000Z",4.9,{}],["2016-05-12T18:20:35.000Z",1.5,{}],["2016-05-12T18:20:36.000Z",4.5,{}],["2016-05-12T18:20:46.000Z",4.5,{}],["2016-05-12T18:20:57.000Z",4.5,{}],["2016-05-12T18:21:05.000Z",1.0,{}],["2016-05-12T18:21:06.000Z",4.8,{}],["2016-05-12T18:21:16.000Z",4.699999999999999,{}],["2016-05-12T18:21:27.000Z",4.6,{}],["2016-05-12T18:21:35.000Z",1.1,{}],["2016-05-12T18:21:36.000Z",4.3999999999999995,{}],["2016-05-12T18:21:46.000Z",4.6,{}],["2016-05-12T18:21:57.000Z",4.8,{}],["2016-05-12T18:22:05.000Z",1.0,{}],["2016-05-12T18:22:06.000Z",5.7,{}],["2016-05-12T18:22:16.000Z",5.4,{}],["2016-05-12T18:22:27.000Z",5.4,{}],["2016-05-12T18:22:35.000Z",1.8,{}],["2016-05-12T18:22:36.000Z",4.7,{}],["2016-05-12T18:22:46.000Z",4.9,{}],["2016-05-12T18:22:57.000Z",4.7,{}],["2016-05-12T18:23:05.000Z",1.1,{}],["2016-05-12T18:23:06.000Z",4.8,{}],["2016-05-12T18:23:16.000Z",4.699999999999999,{}],["2016-05-12T18:23:27.000Z",4.8,{}],["2016-05-12T18:23:35.000Z",1.2,{}],["2016-05-12T18:23:36.000Z",4.8999999999999995,{}],["2016-05-12T18:23:46.000Z",4.8,{}],["2016-05-12T18:23:57.000Z",4.6,{}],["2016-05-12T18:24:05.000Z",1.0,{}],["2016-05-12T18:24:06.000Z",5.0,{}],["2016-05-12T18:24:16.000Z",4.8,{}],["2016-05-12T18:24:27.000Z",4.9,{}],["2016-05-12T18:24:35.000Z",1.5,{}],["2016-05-12T18:24:37.000Z",4.7,{}],["2016-05-12T18:24:46.000Z",4.6,{}],["2016-05-12T18:24:57.000Z",4.5,{}],["2016-05-12T18:25:05.000Z",1.1,{}],["2016-05-12T18:25:07.000Z",4.6,{}],["2016-05-12T18:25:16.000Z",4.6,{}],["2016-05-12T18:25:27.000Z",4.699999999999999,{}],["2016-05-12T18:25:35.000Z",1.1,{}],["2016-05-12T18:25:37.000Z",4.699999999999999,{}],["2016-05-12T18:25:46.000Z",4.6,{}],["2016-05-12T18:25:57.000Z",4.7,{}],["2016-05-12T18:26:05.000Z",1.0,{}],["2016-05-12T18:26:07.000Z",5.4,{}],["2016-05-12T18:26:16.000Z",5.3,{}],["2016-05-12T18:26:27.000Z",5.4,{}],["2016-05-12T18:26:35.000Z",1.7,{}],["2016-05-12T18:26:37.000Z",4.5,{}],["2016-05-12T18:26:46.000Z",4.6,{}],["2016-05-12T18:26:57.000Z",4.6,{}],["2016-05-12T18:27:05.000Z",1.2,{}],["2016-05-12T18:27:07.000Z",4.8,{}],["2016-05-12T18:27:16.000Z",4.699999999999999,{}],["2016-05-12T18:27:27.000Z",4.5,{}],["2016-05-12T18:27:35.000Z",1.1,{}],["2016-05-12T18:27:37.000Z",4.4,{}],["2016-05-12T18:27:46.000Z",4.6,{}],["2016-05-12T18:27:57.000Z",4.8,{}],["2016-05-12T18:28:05.000Z",1.1,{}],["2016-05-12T18:28:07.000Z",5.3,{}],["2016-05-12T18:28:16.000Z",5.1,{}],["2016-05-12T18:28:27.000Z",5.3,{}],["2016-05-12T18:28:35.000Z",1.6,{}],["2016-05-12T18:28:37.000Z",4.8999999999999995,{}],["2016-05-12T18:28:46.000Z",4.9,{}],["2016-05-12T18:28:57.000Z",4.6,{}],["2016-05-12T18:29:05.000Z",1.3,{}],["2016-05-12T18:29:07.000Z",4.6,{}],["2016-05-12T18:29:16.000Z",4.7,{}],["2016-05-12T18:29:27.000Z",4.7,{}],["2016-05-12T18:29:35.000Z",1.1,{}],["2016-05-12T18:29:37.000Z",4.6,{}],["2016-05-12T18:29:46.000Z",4.6,{}],["2016-05-12T18:29:57.000Z",4.699999999999999,{}],["2016-05-12T18:30:06.000Z",1.0,{}],["2016-05-12T18:30:07.000Z",5.3999999999999995,{}],["2016-05-12T18:30:16.000Z",5.3,{}],["2016-05-12T18:30:27.000Z",5.1,{}],["2016-05-12T18:30:36.000Z",1.4000000000000001,{}],["2016-05-12T18:30:37.000Z",4.6,{}],["2016-05-12T18:30:46.000Z",4.6,{}],["2016-05-12T18:30:57.000Z",4.6,{}],["2016-05-12T18:31:06.000Z",1.2000000000000002,{}],["2016-05-12T18:31:07.000Z",4.7,{}],["2016-05-12T18:31:16.000Z",4.5,{}],["2016-05-12T18:31:27.000Z",4.6,{}],["2016-05-12T18:31:36.000Z",1.2,{}],["2016-05-12T18:31:37.000Z",4.7,{}],["2016-05-12T18:31:46.000Z",4.8999999999999995,{}],["2016-05-12T18:31:57.000Z",4.8,{}],["2016-05-12T18:32:06.000Z",1.0,{}],["2016-05-12T18:32:07.000Z",5.3999999999999995,{}],["2016-05-12T18:32:16.000Z",5.3,{}],["2016-05-12T18:32:27.000Z",5.2,{}],["2016-05-12T18:32:36.000Z",1.8,{}],["2016-05-12T18:32:37.000Z",4.5,{}],["2016-05-12T18:32:46.000Z",4.7,{}],["2016-05-12T18:32:57.000Z",4.6,{}],["2016-05-12T18:33:06.000Z",1.1,{}],["2016-05-12T18:33:07.000Z",4.6,{}],["2016-05-12T18:33:16.000Z",4.5,{}],["2016-05-12T18:33:27.000Z",4.6,{}],["2016-05-12T18:33:36.000Z",1.1,{}],["2016-05-12T18:33:37.000Z",4.6,{}],["2016-05-12T18:33:46.000Z",4.6,{}],["2016-05-12T18:33:57.000Z",4.699999999999999,{}],["2016-05-12T18:34:06.000Z",1.1,{}],["2016-05-12T18:34:07.000Z",4.9,{}],["2016-05-12T18:34:16.000Z",4.8,{}],["2016-05-12T18:34:27.000Z",4.7,{}],["2016-05-12T18:34:36.000Z",1.4,{}],["2016-05-12T18:34:37.000Z",4.4,{}],["2016-05-12T18:34:46.000Z",4.9,{}],["2016-05-12T18:34:57.000Z",4.9,{}],["2016-05-12T18:35:06.000Z",1.0,{}],["2016-05-12T18:35:07.000Z",5.0,{}],["2016-05-12T18:35:16.000Z",4.9,{}],["2016-05-12T18:35:28.000Z",4.8999999999999995,{}],["2016-05-12T18:35:36.000Z",1.2,{}],["2016-05-12T18:35:37.000Z",4.8999999999999995,{}],["2016-05-12T18:35:46.000Z",4.8,{}],["2016-05-12T18:35:58.000Z",4.8999999999999995,{}],["2016-05-12T18:36:06.000Z",1.2000000000000002,{}],["2016-05-12T18:36:07.000Z",4.9,{}],["2016-05-12T18:36:16.000Z",4.9,{}],["2016-05-12T18:36:28.000Z",4.8,{}],["2016-05-12T18:36:36.000Z",1.3,{}],["2016-05-12T18:36:37.000Z",4.5,{}],["2016-05-12T18:36:46.000Z",4.5,{}],["2016-05-12T18:36:58.000Z",4.5,{}],["2016-05-12T18:37:06.000Z",1.1,{}],["2016-05-12T18:37:07.000Z",4.8,{}],["2016-05-12T18:37:16.000Z",4.6,{}],["2016-05-12T18:37:28.000Z",4.699999999999999,{}],["2016-05-12T18:37:36.000Z",3.1,{}],["2016-05-12T18:37:37.000Z",4.8,{}],["2016-05-12T18:37:47.000Z",4.8999999999999995,{}],["2016-05-12T18:37:58.000Z",4.9,{}],["2016-05-12T18:38:06.000Z",1.0,{}],["2016-05-12T18:38:07.000Z",5.2,{}],["2016-05-12T18:38:17.000Z",5.0,{}],["2016-05-12T18:38:28.000Z",5.0,{}],["2016-05-12T18:38:36.000Z",1.2000000000000002,{}],["2016-05-12T18:38:37.000Z",4.4,{}],["2016-05-12T18:38:47.000Z",4.7,{}],["2016-05-12T18:38:58.000Z",4.7,{}],["2016-05-12T18:39:06.000Z",1.0,{}],["2016-05-12T18:39:07.000Z",4.8,{}],["2016-05-12T18:39:17.000Z",4.8,{}],["2016-05-12T18:39:28.000Z",4.699999999999999,{}],["2016-05-12T18:39:36.000Z",1.8,{}],["2016-05-12T18:39:37.000Z",4.8999999999999995,{}],["2016-05-12T18:39:47.000Z",4.9,{}],["2016-05-12T18:39:58.000Z",4.8,{}],["2016-05-12T18:40:06.000Z",1.2,{}],["2016-05-12T18:40:07.000Z",4.9,{}],["2016-05-12T18:40:17.000Z",4.7,{}],["2016-05-12T18:40:28.000Z",5.0,{}],["2016-05-12T18:40:36.000Z",1.1,{}],["2016-05-12T18:40:37.000Z",4.6,{}],["2016-05-12T18:40:47.000Z",4.7,{}],["2016-05-12T18:40:58.000Z",4.6,{}],["2016-05-12T18:41:06.000Z",1.1,{}],["2016-05-12T18:41:07.000Z",4.7,{}],["2016-05-12T18:41:17.000Z",4.8,{}],["2016-05-12T18:41:28.000Z",4.8,{}],["2016-05-12T18:41:36.000Z",1.7,{}],["2016-05-12T18:41:37.000Z",4.8,{}],["2016-05-12T18:41:47.000Z",4.7,{}],["2016-05-12T18:41:58.000Z",4.7,{}],["2016-05-12T18:42:06.000Z",1.1,{}],["2016-05-12T18:42:07.000Z",4.9,{}],["2016-05-12T18:42:17.000Z",4.7,{}],["2016-05-12T18:42:28.000Z",4.7,{}],["2016-05-12T18:42:36.000Z",1.2000000000000002,{}],["2016-05-12T18:42:37.000Z",4.3,{}],["2016-05-12T18:42:47.000Z",4.8,{}],["2016-05-12T18:42:58.000Z",5.1,{}],["2016-05-12T18:43:06.000Z",0.9,{}],["2016-05-12T18:43:07.000Z",5.3,{}],["2016-05-12T18:43:17.000Z",6.699999999999999,{}],["2016-05-12T18:43:28.000Z",7.1,{}],["2016-05-12T18:43:36.000Z",1.7,{}],["2016-05-12T18:43:38.000Z",7.0,{}],["2016-05-12T18:43:47.000Z",5.6,{}],["2016-05-12T18:43:58.000Z",4.6,{}],["2016-05-12T18:44:06.000Z",1.1,{}],["2016-05-12T18:44:08.000Z",4.7,{}],["2016-05-12T18:44:17.000Z",4.6,{}],["2016-05-12T18:44:28.000Z",4.8,{}],["2016-05-12T18:44:36.000Z",1.2,{}],["2016-05-12T18:44:38.000Z",4.9,{}],["2016-05-12T18:44:47.000Z",5.0,{}],["2016-05-12T18:44:58.000Z",4.8,{}],["2016-05-12T18:45:06.000Z",1.1,{}],["2016-05-12T18:45:08.000Z",5.1,{}],["2016-05-12T18:45:17.000Z",4.8,{}],["2016-05-12T18:45:28.000Z",5.7,{}],["2016-05-12T18:45:36.000Z",1.6,{}],["2016-05-12T18:45:38.000Z",5.5,{}],["2016-05-12T18:45:47.000Z",5.699999999999999,{}],["2016-05-12T18:45:58.000Z",4.8999999999999995,{}],["2016-05-12T18:46:06.000Z",1.1,{}],["2016-05-12T18:46:08.000Z",4.8999999999999995,{}],["2016-05-12T18:46:17.000Z",4.7,{}],["2016-05-12T18:46:28.000Z",4.6,{}],["2016-05-12T18:46:36.000Z",1.2,{}],["2016-05-12T18:46:38.000Z",4.5,{}],["2016-05-12T18:46:47.000Z",4.7,{}],["2016-05-12T18:46:58.000Z",5.0,{}],["2016-05-12T18:47:06.000Z",1.0,{}],["2016-05-12T18:47:08.000Z",5.0,{}],["2016-05-12T18:47:17.000Z",4.8,{}],["2016-05-12T18:47:28.000Z",5.0,{}],["2016-05-12T18:47:36.000Z",1.4000000000000001,{}],["2016-05-12T18:47:38.000Z",4.9,{}],["2016-05-12T18:47:47.000Z",5.2,{}],["2016-05-12T18:47:58.000Z",4.8999999999999995,{}],["2016-05-12T18:48:06.000Z",1.0,{}],["2016-05-12T18:48:08.000Z",5.199999999999999,{}],["2016-05-12T18:48:17.000Z",4.8,{}],["2016-05-12T18:48:28.000Z",4.6,{}],["2016-05-12T18:48:36.000Z",1.1,{}],["2016-05-12T18:48:38.000Z",4.7,{}],["2016-05-12T18:48:47.000Z",5.1,{}],["2016-05-12T18:48:58.000Z",5.1,{}],["2016-05-12T18:49:06.000Z",1.2,{}],["2016-05-12T18:49:08.000Z",5.0,{}],["2016-05-12T18:49:17.000Z",4.9,{}],["2016-05-12T18:49:28.000Z",5.4,{}],["2016-05-12T18:49:36.000Z",1.3,{}],["2016-05-12T18:49:38.000Z",5.2,{}],["2016-05-12T18:49:47.000Z",5.4,{}],["2016-05-12T18:49:58.000Z",4.8,{}],["2016-05-12T18:50:06.000Z",1.0,{}],["2016-05-12T18:50:08.000Z",4.8999999999999995,{}],["2016-05-12T18:50:17.000Z",4.6,{}],["2016-05-12T18:50:28.000Z",4.699999999999999,{}],["2016-05-12T18:50:36.000Z",1.2,{}],["2016-05-12T18:50:38.000Z",4.8999999999999995,{}],["2016-05-12T18:50:47.000Z",4.8,{}],["2016-05-12T18:50:58.000Z",4.7,{}],["2016-05-12T18:51:07.000Z",1.1,{}],["2016-05-12T18:51:08.000Z",4.7,{}],["2016-05-12T18:51:17.000Z",4.4,{}],["2016-05-12T18:51:28.000Z",4.8,{}],["2016-05-12T18:51:37.000Z",1.5,{}],["2016-05-12T18:51:38.000Z",4.8,{}],["2016-05-12T18:51:47.000Z",5.2,{}],["2016-05-12T18:51:58.000Z",4.8999999999999995,{}],["2016-05-12T18:52:07.000Z",1.0,{}],["2016-05-12T18:52:08.000Z",4.8999999999999995,{}],["2016-05-12T18:52:17.000Z",4.6,{}],["2016-05-12T18:52:28.000Z",4.699999999999999,{}],["2016-05-12T18:52:37.000Z",1.1,{}],["2016-05-12T18:52:38.000Z",4.6,{}],["2016-05-12T18:52:47.000Z",4.7,{}],["2016-05-12T18:52:58.000Z",4.9,{}],["2016-05-12T18:53:07.000Z",1.0,{}],["2016-05-12T18:53:08.000Z",4.8,{}],["2016-05-12T18:53:17.000Z",4.5,{}],["2016-05-12T18:53:28.000Z",4.8,{}],["2016-05-12T18:53:37.000Z",1.5,{}],["2016-05-12T18:53:38.000Z",4.7,{}],["2016-05-12T18:53:47.000Z",5.0,{}],["2016-05-12T18:53:58.000Z",4.8,{}],["2016-05-12T18:54:07.000Z",1.0,{}],["2016-05-12T18:54:08.000Z",4.8999999999999995,{}],["2016-05-12T18:54:17.000Z",4.699999999999999,{}],["2016-05-12T18:54:28.000Z",4.6,{}],["2016-05-12T18:54:37.000Z",1.0,{}],["2016-05-12T18:54:38.000Z",4.5,{}],["2016-05-12T18:54:47.000Z",4.8,{}],["2016-05-12T18:54:58.000Z",4.9,{}],["2016-05-12T18:55:07.000Z",1.0,{}],["2016-05-12T18:55:08.000Z",5.0,{}],["2016-05-12T18:55:17.000Z",5.0,{}],["2016-05-12T18:55:28.000Z",5.0,{}],["2016-05-12T18:55:37.000Z",1.4,{}],["2016-05-12T18:55:38.000Z",4.8999999999999995,{}],["2016-05-12T18:55:47.000Z",4.8999999999999995,{}],["2016-05-12T18:55:58.000Z",5.0,{}],["2016-05-12T18:56:07.000Z",1.2000000000000002,{}],["2016-05-12T18:56:08.000Z",5.1,{}],["2016-05-12T18:56:17.000Z",4.6,{}],["2016-05-12T18:56:29.000Z",4.6,{}],["2016-05-12T18:56:37.000Z",1.1,{}],["2016-05-12T18:56:38.000Z",4.6,{}],["2016-05-12T18:56:47.000Z",5.1,{}],["2016-05-12T18:56:59.000Z",5.1,{}],["2016-05-12T18:57:07.000Z",0.9,{}],["2016-05-12T18:57:08.000Z",5.2,{}],["2016-05-12T18:57:17.000Z",4.8999999999999995,{}],["2016-05-12T18:57:29.000Z",5.1,{}],["2016-05-12T18:57:37.000Z",1.7,{}],["2016-05-12T18:57:38.000Z",5.0,{}],["2016-05-12T18:57:47.000Z",5.3,{}],["2016-05-12T18:57:59.000Z",4.9,{}],["2016-05-12T18:58:07.000Z",1.1,{}],["2016-05-12T18:58:08.000Z",5.0,{}],["2016-05-12T18:58:18.000Z",4.8,{}],["2016-05-12T18:58:29.000Z",4.8,{}],["2016-05-12T18:58:37.000Z",1.2000000000000002,{}],["2016-05-12T18:58:38.000Z",4.6,{}],["2016-05-12T18:58:48.000Z",4.8,{}],["2016-05-12T18:58:59.000Z",4.8999999999999995,{}],["2016-05-12T18:59:07.000Z",1.0,{}],["2016-05-12T18:59:08.000Z",5.199999999999999,{}],["2016-05-12T18:59:18.000Z",5.199999999999999,{}],["2016-05-12T18:59:29.000Z",5.4,{}],["2016-05-12T18:59:37.000Z",1.4,{}],["2016-05-12T18:59:38.000Z",5.0,{}],["2016-05-12T18:59:48.000Z",5.0,{}],["2016-05-12T18:59:59.000Z",4.8,{}],["2016-05-12T19:00:07.000Z",1.0,{}],["2016-05-12T19:00:08.000Z",5.0,{}],["2016-05-12T19:00:18.000Z",4.7,{}],["2016-05-12T19:00:29.000Z",4.6,{}],["2016-05-12T19:00:37.000Z",1.2,{}],["2016-05-12T19:00:38.000Z",4.6,{}],["2016-05-12T19:00:48.000Z",4.8999999999999995,{}],["2016-05-12T19:00:59.000Z",5.0,{}],["2016-05-12T19:01:07.000Z",1.1,{}],["2016-05-12T19:01:08.000Z",5.3,{}],["2016-05-12T19:01:18.000Z",5.1,{}],["2016-05-12T19:01:29.000Z",5.2,{}],["2016-05-12T19:01:37.000Z",1.2,{}],["2016-05-12T19:01:38.000Z",4.7,{}],["2016-05-12T19:01:48.000Z",5.0,{}],["2016-05-12T19:01:59.000Z",4.8,{}],["2016-05-12T19:02:07.000Z",1.1,{}],["2016-05-12T19:02:08.000Z",4.9,{}],["2016-05-12T19:02:18.000Z",4.9,{}],["2016-05-12T19:02:29.000Z",4.8,{}],["2016-05-12T19:02:37.000Z",1.2,{}],["2016-05-12T19:02:38.000Z",4.699999999999999,{}],["2016-05-12T19:02:48.000Z",4.699999999999999,{}],["2016-05-12T19:02:59.000Z",5.0,{}],["2016-05-12T19:03:07.000Z",1.0,{}],["2016-05-12T19:03:08.000Z",5.3,{}],["2016-05-12T19:03:18.000Z",5.0,{}],["2016-05-12T19:03:29.000Z",5.3,{}],["2016-05-12T19:03:37.000Z",1.3,{}],["2016-05-12T19:03:38.000Z",5.0,{}],["2016-05-12T19:03:48.000Z",5.5,{}],["2016-05-12T19:03:59.000Z",5.0,{}],["2016-05-12T19:04:07.000Z",1.1,{}],["2016-05-12T19:04:08.000Z",5.2,{}],["2016-05-12T19:04:18.000Z",4.7,{}],["2016-05-12T19:04:29.000Z",4.7,{}],["2016-05-12T19:04:37.000Z",1.2,{}],["2016-05-12T19:04:39.000Z",4.6,{}],["2016-05-12T19:04:48.000Z",5.1,{}],["2016-05-12T19:04:59.000Z",5.199999999999999,{}],["2016-05-12T19:05:07.000Z",2.6,{}],["2016-05-12T19:05:09.000Z",5.2,{}],["2016-05-12T19:05:18.000Z",4.7,{}],["2016-05-12T19:05:29.000Z",5.1,{}],["2016-05-12T19:05:37.000Z",1.1,{}],["2016-05-12T19:05:39.000Z",5.1,{}],["2016-05-12T19:05:48.000Z",5.6,{}],["2016-05-12T19:05:59.000Z",5.1,{}],["2016-05-12T19:06:07.000Z",0.9,{}],["2016-05-12T19:06:09.000Z",5.199999999999999,{}],["2016-05-12T19:06:18.000Z",4.8,{}],["2016-05-12T19:06:29.000Z",4.8999999999999995,{}],["2016-05-12T19:06:37.000Z",1.5999999999999999,{}],["2016-05-12T19:06:39.000Z",4.8,{}],["2016-05-12T19:06:48.000Z",4.8,{}],["2016-05-12T19:06:59.000Z",4.9,{}],["2016-05-12T19:07:07.000Z",1.9,{}],["2016-05-12T19:07:09.000Z",5.0,{}],["2016-05-12T19:07:18.000Z",4.8,{}],["2016-05-12T19:07:29.000Z",5.3,{}],["2016-05-12T19:07:37.000Z",1.0,{}],["2016-05-12T19:07:39.000Z",5.0,{}],["2016-05-12T19:07:48.000Z",5.6,{}],["2016-05-12T19:07:59.000Z",5.199999999999999,{}],["2016-05-12T19:08:07.000Z",1.1,{}],["2016-05-12T19:08:09.000Z",5.5,{}],["2016-05-12T19:08:18.000Z",4.9,{}],["2016-05-12T19:08:29.000Z",4.9,{}],["2016-05-12T19:08:37.000Z",1.2000000000000002,{}],["2016-05-12T19:08:39.000Z",4.8,{}],["2016-05-12T19:08:48.000Z",4.8,{}],["2016-05-12T19:08:59.000Z",4.9,{}],["2016-05-12T19:09:07.000Z",1.5,{}],["2016-05-12T19:09:09.000Z",4.8999999999999995,{}],["2016-05-12T19:09:18.000Z",5.0,{}],["2016-05-12T19:09:29.000Z",4.8999999999999995,{}],["2016-05-12T19:09:37.000Z",1.1,{}],["2016-05-12T19:09:39.000Z",4.8999999999999995,{}],["2016-05-12T19:09:48.000Z",5.2,{}],["2016-05-12T19:09:59.000Z",5.1,{}],["2016-05-12T19:10:07.000Z",1.0,{}],["2016-05-12T19:10:09.000Z",5.0,{}],["2016-05-12T19:10:18.000Z",4.6,{}],["2016-05-12T19:10:29.000Z",4.8,{}],["2016-05-12T19:10:37.000Z",1.3,{}],["2016-05-12T19:10:39.000Z",5.6,{}],["2016-05-12T19:10:48.000Z",7.0,{}],["2016-05-12T19:10:59.000Z",6.8,{}],["2016-05-12T19:11:07.000Z",1.9,{}],["2016-05-12T19:11:09.000Z",6.1,{}],["2016-05-12T19:11:18.000Z",4.5,{}],["2016-05-12T19:11:29.000Z",4.5,{}],["2016-05-12T19:11:37.000Z",1.1,{}],["2016-05-12T19:11:39.000Z",4.5,{}],["2016-05-12T19:11:48.000Z",4.8,{}],["2016-05-12T19:11:59.000Z",4.7,{}],["2016-05-12T19:12:07.000Z",1.1,{}],["2016-05-12T19:12:09.000Z",5.0,{}],["2016-05-12T19:12:18.000Z",4.9,{}],["2016-05-12T19:12:29.000Z",5.0,{}],["2016-05-12T19:12:38.000Z",1.0,{}],["2016-05-12T19:12:39.000Z",4.7,{}],["2016-05-12T19:12:48.000Z",5.3,{}],["2016-05-12T19:12:59.000Z",5.3999999999999995,{}],["2016-05-12T19:13:08.000Z",1.9,{}],["2016-05-12T19:13:09.000Z",5.5,{}],["2016-05-12T19:13:18.000Z",5.1,{}],["2016-05-12T19:13:29.000Z",5.0,{}],["2016-05-12T19:13:38.000Z",1.1,{}],["2016-05-12T19:13:39.000Z",4.7,{}],["2016-05-12T19:13:48.000Z",4.7,{}],["2016-05-12T19:13:59.000Z",5.1,{}],["2016-05-12T19:14:08.000Z",1.1,{}],["2016-05-12T19:14:09.000Z",5.0,{}],["2016-05-12T19:14:18.000Z",4.8,{}],["2016-05-12T19:14:29.000Z",5.0,{}],["2016-05-12T19:14:38.000Z",1.2000000000000002,{}],["2016-05-12T19:14:39.000Z",5.3,{}],["2016-05-12T19:14:48.000Z",5.8,{}],["2016-05-12T19:14:59.000Z",5.3999999999999995,{}],["2016-05-12T19:15:08.000Z",1.7,{}],["2016-05-12T19:15:09.000Z",5.5,{}],["2016-05-12T19:15:18.000Z",5.1,{}],["2016-05-12T19:15:29.000Z",5.2,{}],["2016-05-12T19:15:38.000Z",1.1,{}],["2016-05-12T19:15:39.000Z",4.7,{}],["2016-05-12T19:15:48.000Z",5.2,{}],["2016-05-12T19:15:59.000Z",5.1,{}],["2016-05-12T19:16:08.000Z",1.3,{}],["2016-05-12T19:16:09.000Z",5.3,{}],["2016-05-12T19:16:18.000Z",4.8999999999999995,{}],["2016-05-12T19:16:29.000Z",4.8,{}],["2016-05-12T19:16:38.000Z",1.1,{}],["2016-05-12T19:16:39.000Z",5.0,{}],["2016-05-12T19:16:48.000Z",5.8,{}],["2016-05-12T19:16:59.000Z",5.9,{}],["2016-05-12T19:17:08.000Z",2.2,{}],["2016-05-12T19:17:09.000Z",5.6,{}],["2016-05-12T19:17:18.000Z",4.9,{}],["2016-05-12T19:17:30.000Z",4.8,{}],["2016-05-12T19:17:38.000Z",1.4000000000000001,{}],["2016-05-12T19:17:39.000Z",4.7,{}],["2016-05-12T19:17:48.000Z",4.8,{}],["2016-05-12T19:18:00.000Z",4.8,{}],["2016-05-12T19:18:08.000Z",1.0,{}],["2016-05-12T19:18:09.000Z",5.0,{}],["2016-05-12T19:18:18.000Z",5.0,{}],["2016-05-12T19:18:30.000Z",5.1,{}],["2016-05-12T19:18:38.000Z",1.3,{}],["2016-05-12T19:18:39.000Z",5.3,{}],["2016-05-12T19:18:48.000Z",6.3,{}],["2016-05-12T19:19:00.000Z",6.2,{}],["2016-05-12T19:19:08.000Z",2.0,{}],["2016-05-12T19:19:09.000Z",5.9,{}],["2016-05-12T19:19:18.000Z",4.6,{}],["2016-05-12T19:19:30.000Z",4.9,{}],["2016-05-12T19:19:38.000Z",1.3,{}],["2016-05-12T19:19:39.000Z",4.7,{}],["2016-05-12T19:19:48.000Z",5.1,{}],["2016-05-12T19:20:00.000Z",5.0,{}],["2016-05-12T19:20:08.000Z",1.2,{}],["2016-05-12T19:20:09.000Z",5.199999999999999,{}],["2016-05-12T19:20:18.000Z",4.8999999999999995,{}],["2016-05-12T19:20:30.000Z",4.8,{}],["2016-05-12T19:20:38.000Z",1.1,{}],["2016-05-12T19:20:39.000Z",4.8,{}],["2016-05-12T19:20:49.000Z",5.5,{}],["2016-05-12T19:21:00.000Z",5.5,{}],["2016-05-12T19:21:08.000Z",1.7000000000000002,{}],["2016-05-12T19:21:09.000Z",5.4,{}],["2016-05-12T19:21:19.000Z",5.0,{}],["2016-05-12T19:21:30.000Z",5.1,{}],["2016-05-12T19:21:38.000Z",1.3,{}],["2016-05-12T19:21:39.000Z",5.1,{}],["2016-05-12T19:21:49.000Z",5.2,{}],["2016-05-12T19:22:00.000Z",5.199999999999999,{}],["2016-05-12T19:22:08.000Z",1.1,{}],["2016-05-12T19:22:09.000Z",5.199999999999999,{}],["2016-05-12T19:22:19.000Z",4.8,{}],["2016-05-12T19:22:30.000Z",4.9,{}],["2016-05-12T19:22:38.000Z",1.3,{}],["2016-05-12T19:22:39.000Z",4.9,{}],["2016-05-12T19:22:49.000Z",5.5,{}],["2016-05-12T19:23:00.000Z",5.4,{}],["2016-05-12T19:23:08.000Z",1.9000000000000001,{}],["2016-05-12T19:23:09.000Z",5.3,{}],["2016-05-12T19:23:19.000Z",4.7,{}],["2016-05-12T19:23:30.000Z",5.0,{}],["2016-05-12T19:23:38.000Z",1.3,{}],["2016-05-12T19:23:39.000Z",5.1,{}],["2016-05-12T19:23:49.000Z",5.2,{}],["2016-05-12T19:24:00.000Z",4.9,{}],["2016-05-12T19:24:08.000Z",1.2,{}],["2016-05-12T19:24:09.000Z",5.0,{}],["2016-05-12T19:24:19.000Z",4.8999999999999995,{}],["2016-05-12T19:24:30.000Z",4.8999999999999995,{}],["2016-05-12T19:24:38.000Z",1.1,{}],["2016-05-12T19:24:39.000Z",4.699999999999999,{}],["2016-05-12T19:24:49.000Z",5.3,{}],["2016-05-12T19:25:00.000Z",5.4,{}],["2016-05-12T19:25:08.000Z",1.5,{}],["2016-05-12T19:25:09.000Z",5.4,{}],["2016-05-12T19:25:19.000Z",4.7,{}],["2016-05-12T19:25:30.000Z",4.8,{}],["2016-05-12T19:25:38.000Z",1.3,{}],["2016-05-12T19:25:39.000Z",4.7,{}],["2016-05-12T19:25:49.000Z",5.0,{}],["2016-05-12T19:26:00.000Z",5.1,{}],["2016-05-12T19:26:08.000Z",1.1,{}],["2016-05-12T19:26:10.000Z",5.3,{}],["2016-05-12T19:26:19.000Z",4.8999999999999995,{}],["2016-05-12T19:26:30.000Z",4.8,{}],["2016-05-12T19:26:38.000Z",1.2,{}],["2016-05-12T19:26:40.000Z",4.9,{}],["2016-05-12T19:26:49.000Z",5.5,{}],["2016-05-12T19:27:00.000Z",5.5,{}],["2016-05-12T19:27:08.000Z",1.4,{}],["2016-05-12T19:27:10.000Z",5.1,{}],["2016-05-12T19:27:19.000Z",4.6,{}],["2016-05-12T19:27:30.000Z",4.7,{}],["2016-05-12T19:27:38.000Z",1.1,{}],["2016-05-12T19:27:40.000Z",4.8,{}],["2016-05-12T19:27:49.000Z",5.0,{}],["2016-05-12T19:28:00.000Z",5.0,{}],["2016-05-12T19:28:08.000Z",1.2,{}],["2016-05-12T19:28:10.000Z",5.199999999999999,{}],["2016-05-12T19:28:19.000Z",4.8,{}],["2016-05-12T19:28:30.000Z",5.2,{}],["2016-05-12T19:28:38.000Z",1.3,{}],["2016-05-12T19:28:40.000Z",4.9,{}],["2016-05-12T19:28:49.000Z",5.5,{}],["2016-05-12T19:29:00.000Z",5.4,{}],["2016-05-12T19:29:08.000Z",2.1,{}],["2016-05-12T19:29:10.000Z",5.6,{}],["2016-05-12T19:29:19.000Z",5.3,{}],["2016-05-12T19:29:30.000Z",5.3,{}],["2016-05-12T19:29:38.000Z",1.1,{}],["2016-05-12T19:29:40.000Z",5.199999999999999,{}],["2016-05-12T19:29:49.000Z",5.7,{}],["2016-05-12T19:30:00.000Z",5.3,{}],["2016-05-12T19:30:08.000Z",1.1,{}],["2016-05-12T19:30:10.000Z",5.2,{}],["2016-05-12T19:30:19.000Z",4.5,{}],["2016-05-12T19:30:30.000Z",4.6,{}],["2016-05-12T19:30:38.000Z",1.3,{}],["2016-05-12T19:30:40.000Z",4.7,{}],["2016-05-12T19:30:49.000Z",5.3,{}],["2016-05-12T19:31:00.000Z",5.1,{}],["2016-05-12T19:31:08.000Z",2.4,{}],["2016-05-12T19:31:10.000Z",5.2,{}],["2016-05-12T19:31:19.000Z",4.8,{}],["2016-05-12T19:31:30.000Z",4.8,{}],["2016-05-12T19:31:38.000Z",1.8,{}],["2016-05-12T19:31:40.000Z",4.8,{}],["2016-05-12T19:31:49.000Z",4.8999999999999995,{}],["2016-05-12T19:32:00.000Z",4.9,{}],["2016-05-12T19:32:10.000Z",1.6,{}],["2016-05-12T19:32:10.000Z",4.9,{}],["2016-05-12T19:32:19.000Z",4.7,{}],["2016-05-12T19:32:30.000Z",4.5,{}],["2016-05-12T19:32:38.000Z",3.7,{}],["2016-05-12T19:32:40.000Z",4.6,{}],["2016-05-12T19:32:49.000Z",5.0,{}],["2016-05-12T19:33:00.000Z",5.3,{}],["2016-05-12T19:33:09.000Z",1.3,{}],["2016-05-12T19:33:10.000Z",5.3,{}],["2016-05-12T19:33:19.000Z",4.8,{}],["2016-05-12T19:33:30.000Z",4.8999999999999995,{}],["2016-05-12T19:33:39.000Z",1.3,{}],["2016-05-12T19:33:40.000Z",4.8,{}],["2016-05-12T19:33:49.000Z",5.1,{}],["2016-05-12T19:34:00.000Z",5.0,{}],["2016-05-12T19:34:09.000Z",1.0,{}],["2016-05-12T19:34:10.000Z",4.9,{}],["2016-05-12T19:34:19.000Z",4.9,{}],["2016-05-12T19:34:30.000Z",4.8999999999999995,{}],["2016-05-12T19:34:39.000Z",1.4,{}],["2016-05-12T19:34:40.000Z",4.699999999999999,{}],["2016-05-12T19:34:49.000Z",5.3999999999999995,{}],["2016-05-12T19:35:00.000Z",5.3,{}],["2016-05-12T19:35:09.000Z",1.2000000000000002,{}],["2016-05-12T19:35:10.000Z",5.7,{}],["2016-05-12T19:35:19.000Z",4.9,{}],["2016-05-12T19:35:30.000Z",4.8,{}],["2016-05-12T19:35:39.000Z",1.2,{}],["2016-05-12T19:35:40.000Z",4.5,{}],["2016-05-12T19:35:49.000Z",4.9,{}],["2016-05-12T19:36:00.000Z",5.0,{}],["2016-05-12T19:36:09.000Z",1.2,{}],["2016-05-12T19:36:10.000Z",5.3,{}],["2016-05-12T19:36:19.000Z",4.9,{}],["2016-05-12T19:36:30.000Z",5.0,{}],["2016-05-12T19:36:39.000Z",2.0,{}],["2016-05-12T19:36:40.000Z",4.8999999999999995,{}],["2016-05-12T19:36:49.000Z",5.3999999999999995,{}],["2016-05-12T19:37:00.000Z",5.2,{}],["2016-05-12T19:37:09.000Z",1.4,{}],["2016-05-12T19:37:10.000Z",5.4,{}],["2016-05-12T19:37:19.000Z",5.1,{}],["2016-05-12T19:37:31.000Z",4.9,{}],["2016-05-12T19:37:39.000Z",1.2,{}],["2016-05-12T19:37:40.000Z",4.7,{}],["2016-05-12T19:37:49.000Z",4.8,{}],["2016-05-12T19:38:01.000Z",5.0,{}],["2016-05-12T19:38:09.000Z",1.1,{}],["2016-05-12T19:38:10.000Z",5.5,{}],["2016-05-12T19:38:19.000Z",5.1,{}],["2016-05-12T19:38:31.000Z",6.2,{}],["2016-05-12T19:38:39.000Z",1.9000000000000001,{}],["2016-05-12T19:38:40.000Z",7.0,{}],["2016-05-12T19:38:49.000Z",7.4,{}],["2016-05-12T19:39:01.000Z",6.1,{}],["2016-05-12T19:39:09.000Z",1.4000000000000001,{}],["2016-05-12T19:39:10.000Z",5.0,{}],["2016-05-12T19:39:19.000Z",4.699999999999999,{}],["2016-05-12T19:39:31.000Z",4.8999999999999995,{}],["2016-05-12T19:39:39.000Z",1.3,{}],["2016-05-12T19:39:40.000Z",4.699999999999999,{}],["2016-05-12T19:39:49.000Z",5.0,{}],["2016-05-12T19:40:01.000Z",4.9,{}],["2016-05-12T19:40:09.000Z",1.1,{}],["2016-05-12T19:40:10.000Z",5.0,{}],["2016-05-12T19:40:19.000Z",4.7,{}],["2016-05-12T19:40:31.000Z",4.8,{}],["2016-05-12T19:40:39.000Z",1.6,{}],["2016-05-12T19:40:40.000Z",5.0,{}],["2016-05-12T19:40:50.000Z",5.5,{}],["2016-05-12T19:41:01.000Z",5.5,{}],["2016-05-12T19:41:09.000Z",1.1,{}],["2016-05-12T19:41:10.000Z",5.199999999999999,{}],["2016-05-12T19:41:20.000Z",4.699999999999999,{}],["2016-05-12T19:41:31.000Z",5.0,{}],["2016-05-12T19:41:39.000Z",1.2,{}],["2016-05-12T19:41:40.000Z",5.2,{}],["2016-05-12T19:41:50.000Z",5.3,{}],["2016-05-12T19:42:01.000Z",5.1,{}],["2016-05-12T19:42:09.000Z",1.2000000000000002,{}],["2016-05-12T19:42:10.000Z",5.2,{}],["2016-05-12T19:42:20.000Z",5.0,{}],["2016-05-12T19:42:31.000Z",5.0,{}],["2016-05-12T19:42:39.000Z",1.5,{}],["2016-05-12T19:42:40.000Z",5.0,{}],["2016-05-12T19:42:50.000Z",4.9,{}],["2016-05-12T19:43:01.000Z",5.0,{}],["2016-05-12T19:43:09.000Z",1.1,{}],["2016-05-12T19:43:10.000Z",5.1,{}],["2016-05-12T19:43:20.000Z",5.199999999999999,{}],["2016-05-12T19:43:31.000Z",5.1,{}],["2016-05-12T19:43:39.000Z",1.2,{}],["2016-05-12T19:43:40.000Z",5.0,{}],["2016-05-12T19:43:50.000Z",4.9,{}],["2016-05-12T19:44:01.000Z",5.2,{}],["2016-05-12T19:44:09.000Z",1.2000000000000002,{}],["2016-05-12T19:44:10.000Z",5.4,{}],["2016-05-12T19:44:20.000Z",5.3,{}],["2016-05-12T19:44:31.000Z",5.2,{}],["2016-05-12T19:44:39.000Z",2.4,{}],["2016-05-12T19:44:41.000Z",5.4,{}],["2016-05-12T19:44:50.000Z",5.5,{}],["2016-05-12T19:45:01.000Z",5.5,{}],["2016-05-12T19:45:09.000Z",1.1,{}],["2016-05-12T19:45:11.000Z",4.9,{}],["2016-05-12T19:45:20.000Z",4.8999999999999995,{}],["2016-05-12T19:45:31.000Z",4.699999999999999,{}],["2016-05-12T19:45:39.000Z",1.3,{}],["2016-05-12T19:45:41.000Z",4.8,{}],["2016-05-12T19:45:50.000Z",5.1,{}],["2016-05-12T19:46:01.000Z",5.2,{}],["2016-05-12T19:46:09.000Z",1.2000000000000002,{}],["2016-05-12T19:46:11.000Z",5.0,{}],["2016-05-12T19:46:20.000Z",5.0,{}],["2016-05-12T19:46:31.000Z",4.8,{}],["2016-05-12T19:46:39.000Z",1.7,{}],["2016-05-12T19:46:41.000Z",5.1,{}],["2016-05-12T19:46:50.000Z",5.1,{}],["2016-05-12T19:47:01.000Z",5.2,{}],["2016-05-12T19:47:09.000Z",1.1,{}],["2016-05-12T19:47:11.000Z",5.0,{}],["2016-05-12T19:47:20.000Z",4.9,{}],["2016-05-12T19:47:31.000Z",5.199999999999999,{}],["2016-05-12T19:47:39.000Z",1.4,{}],["2016-05-12T19:47:41.000Z",5.1,{}],["2016-05-12T19:47:50.000Z",5.0,{}],["2016-05-12T19:48:01.000Z",4.8,{}],["2016-05-12T19:48:09.000Z",1.1,{}],["2016-05-12T19:48:11.000Z",4.9,{}],["2016-05-12T19:48:20.000Z",4.9,{}],["2016-05-12T19:48:31.000Z",5.0,{}],["2016-05-12T19:48:39.000Z",1.5,{}],["2016-05-12T19:48:41.000Z",5.7,{}],["2016-05-12T19:48:50.000Z",5.7,{}],["2016-05-12T19:49:01.000Z",5.7,{}],["2016-05-12T19:49:09.000Z",1.2,{}],["2016-05-12T19:49:11.000Z",4.9,{}],["2016-05-12T19:49:20.000Z",4.8,{}],["2016-05-12T19:49:31.000Z",5.0,{}],["2016-05-12T19:49:39.000Z",1.4,{}],["2016-05-12T19:49:41.000Z",4.8999999999999995,{}],["2016-05-12T19:49:50.000Z",5.0,{}],["2016-05-12T19:50:01.000Z",4.8,{}],["2016-05-12T19:50:09.000Z",1.3,{}],["2016-05-12T19:50:11.000Z",4.9,{}],["2016-05-12T19:50:20.000Z",4.8,{}],["2016-05-12T19:50:31.000Z",4.8,{}],["2016-05-12T19:50:39.000Z",1.4,{}],["2016-05-12T19:50:41.000Z",5.2,{}],["2016-05-12T19:50:50.000Z",5.4,{}],["2016-05-12T19:51:01.000Z",5.3999999999999995,{}],["2016-05-12T19:51:09.000Z",1.4,{}],["2016-05-12T19:51:11.000Z",5.1,{}],["2016-05-12T19:51:20.000Z",5.0,{}],["2016-05-12T19:51:31.000Z",5.199999999999999,{}],["2016-05-12T19:51:39.000Z",1.9,{}],["2016-05-12T19:51:41.000Z",5.1,{}],["2016-05-12T19:51:50.000Z",5.1,{}],["2016-05-12T19:52:01.000Z",5.0,{}],["2016-05-12T19:52:09.000Z",1.8,{}],["2016-05-12T19:52:11.000Z",5.0,{}],["2016-05-12T19:52:20.000Z",4.9,{}],["2016-05-12T19:52:31.000Z",4.7,{}],["2016-05-12T19:52:41.000Z",4.6,{}],["2016-05-12T19:52:50.000Z",4.8,{}],["2016-05-12T19:53:01.000Z",5.1,{}],["2016-05-12T19:53:11.000Z",5.1,{}],["2016-05-12T19:53:20.000Z",4.8,{}],["2016-05-12T19:53:31.000Z",4.4,{}],["2016-05-12T19:53:41.000Z",4.6,{}],["2016-05-12T19:53:50.000Z",4.9,{}],["2016-05-12T19:54:01.000Z",4.9,{}],["2016-05-12T19:54:11.000Z",4.7,{}],["2016-05-12T19:54:20.000Z",4.6,{}],["2016-05-12T19:54:31.000Z",4.699999999999999,{}],["2016-05-12T19:54:41.000Z",5.2,{}],["2016-05-12T19:54:50.000Z",5.1,{}],["2016-05-12T19:55:01.000Z",4.9,{}],["2016-05-12T19:55:11.000Z",4.5,{}],["2016-05-12T19:55:20.000Z",4.3,{}],["2016-05-12T19:55:31.000Z",4.3,{}],["2016-05-12T19:55:41.000Z",4.2,{}],["2016-05-12T19:55:50.000Z",4.3,{}],["2016-05-12T19:56:01.000Z",4.4,{}],["2016-05-12T19:56:11.000Z",4.9,{}],["2016-05-12T19:56:20.000Z",5.0,{}],["2016-05-12T19:56:31.000Z",4.8999999999999995,{}],["2016-05-12T19:56:41.000Z",5.3,{}],["2016-05-12T19:56:50.000Z",5.699999999999999,{}],["2016-05-12T19:57:01.000Z",5.7,{}],["2016-05-12T19:57:11.000Z",4.8,{}],["2016-05-12T19:57:20.000Z",5.3,{}],["2016-05-12T19:57:31.000Z",6.9,{}],["2016-05-12T19:57:41.000Z",7.3,{}],["2016-05-12T19:57:50.000Z",6.9,{}],["2016-05-12T19:58:01.000Z",5.5,{}],["2016-05-12T19:58:11.000Z",5.4,{}],["2016-05-12T19:58:20.000Z",5.3999999999999995,{}],["2016-05-12T19:58:31.000Z",5.3,{}],["2016-05-12T19:58:41.000Z",5.199999999999999,{}],["2016-05-12T19:58:50.000Z",5.3999999999999995,{}],["2016-05-12T19:59:02.000Z",5.5,{}],["2016-05-12T19:59:11.000Z",5.6,{}],["2016-05-12T19:59:20.000Z",5.3,{}],["2016-05-12T19:59:32.000Z",5.4,{}],["2016-05-12T19:59:41.000Z",5.9,{}],["2016-05-12T19:59:50.000Z",6.4,{}],["2016-05-12T20:00:02.000Z",6.2,{}],["2016-05-12T20:00:11.000Z",5.8999999999999995,{}],["2016-05-12T20:00:20.000Z",6.199999999999999,{}],["2016-05-12T20:00:32.000Z",9.2,{}],["2016-05-12T20:00:41.000Z",9.1,{}],["2016-05-12T20:00:50.000Z",8.5,{}],["2016-05-12T20:01:02.000Z",5.7,{}],["2016-05-12T20:01:11.000Z",5.9,{}],["2016-05-12T20:01:20.000Z",5.8,{}],["2016-05-12T20:01:32.000Z",5.9,{}],["2016-05-12T20:01:41.000Z",5.4,{}],["2016-05-12T20:01:50.000Z",5.3,{}],["2016-05-12T20:02:02.000Z",4.9,{}],["2016-05-12T20:02:11.000Z",5.3,{}],["2016-05-12T20:02:21.000Z",5.3,{}],["2016-05-12T20:02:32.000Z",5.5,{}],["2016-05-12T20:02:41.000Z",5.3,{}],["2016-05-12T20:02:51.000Z",5.3,{}],["2016-05-12T20:03:02.000Z",6.0,{}],["2016-05-12T20:03:11.000Z",6.3,{}],["2016-05-12T20:03:21.000Z",6.5,{}],["2016-05-12T20:03:32.000Z",6.3,{}],["2016-05-12T20:03:42.000Z",6.199999999999999,{}],["2016-05-12T20:03:51.000Z",6.0,{}],["2016-05-12T20:04:02.000Z",5.8999999999999995,{}],["2016-05-12T20:04:11.000Z",5.8999999999999995,{}],["2016-05-12T20:04:21.000Z",5.9,{}],["2016-05-12T20:04:32.000Z",5.6,{}],["2016-05-12T20:04:42.000Z",5.5,{}],["2016-05-12T20:04:51.000Z",7.9,{}],["2016-05-12T20:05:02.000Z",7.3,{}],["2016-05-12T20:05:12.000Z",8.7,{}],["2016-05-12T20:05:22.000Z",6.8,{}],["2016-05-12T20:05:32.000Z",7.1,{}],["2016-05-12T20:05:42.000Z",5.6,{}],["2016-05-12T20:05:51.000Z",4.8,{}],["2016-05-12T20:06:02.000Z",5.0,{}],["2016-05-12T20:06:12.000Z",5.8,{}],["2016-05-12T20:06:21.000Z",4.1,{}],["2016-05-12T20:06:21.000Z",5.8,{}],["2016-05-12T20:06:32.000Z",5.8,{}],["2016-05-12T20:06:42.000Z",5.0,{}],["2016-05-12T20:06:51.000Z",5.3,{}],["2016-05-12T20:06:51.000Z",5.3,{}],["2016-05-12T20:07:02.000Z",5.3,{}],["2016-05-12T20:07:12.000Z",5.6,{}],["2016-05-12T20:07:21.000Z",5.2,{}],["2016-05-12T20:07:21.000Z",5.2,{}],["2016-05-12T20:07:32.000Z",5.1,{}],["2016-05-12T20:07:42.000Z",4.8,{}],["2016-05-12T20:07:51.000Z",4.9,{}],["2016-05-12T20:07:51.000Z",4.8,{}],["2016-05-12T20:08:02.000Z",5.1,{}],["2016-05-12T20:08:10.000Z",6.2,{}],["2016-05-12T20:08:12.000Z",5.3,{}],["2016-05-12T20:08:21.000Z",5.2,{}],["2016-05-12T20:08:21.000Z",5.2,{}],["2016-05-12T20:08:32.000Z",5.1,{}],["2016-05-12T20:08:40.000Z",4.5,{}],["2016-05-12T20:08:42.000Z",4.8999999999999995,{}],["2016-05-12T20:08:51.000Z",5.6,{}],["2016-05-12T20:08:51.000Z",5.6,{}],["2016-05-12T20:09:02.000Z",6.0,{}],["2016-05-12T20:09:03.000Z",7.7,{}],["2016-05-12T20:09:10.000Z",6.3,{}],["2016-05-12T20:09:12.000Z",6.0,{}],["2016-05-12T20:09:21.000Z",5.4,{}],["2016-05-12T20:09:21.000Z",5.4,{}],["2016-05-12T20:09:32.000Z",5.2,{}],["2016-05-12T20:09:33.000Z",5.1,{}],["2016-05-12T20:09:40.000Z",4.9,{}],["2016-05-12T20:09:42.000Z",5.2,{}],["2016-05-12T20:09:51.000Z",4.9,{}],["2016-05-12T20:09:51.000Z",4.9,{}],["2016-05-12T20:10:02.000Z",4.8,{}],["2016-05-12T20:10:03.000Z",4.8,{}],["2016-05-12T20:10:10.000Z",5.1,{}],["2016-05-12T20:10:12.000Z",4.8,{}]]}]}' http_version: recorded_at: Fri, 20 May 2016 15:16:10 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/measurements?name=non.existing.metric_name&start_time=2016-04-01T14:43:00Z body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:16:10 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/metrics/measurements?name=non.existing.metric_name&start_time=2016-04-01T14%3A43%3A00Z"}],"elements":[]}' http_version: recorded_at: Fri, 20 May 2016 15:16:10 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/metrics_name_list.yml000066400000000000000000000430151476630434000274730ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/names body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qmlKsBF3BILw83dieMyyXSMG25F94-dBG7NGu4nuuaQTNRcxnGHRxlcr93sySDWtFhI1dc0KxZkh-sXNjxwCbpJmiZDDqmf0yLtcsRBh7a15n2Jrb7irRJ3Oq72OLyFBy6fIOy8y9Cs9JEQiCkCWVb0xf9rES-dfDNX7NKsBKJjpl8E_7L-3RsUM_Uhn33LsQ6JFlX411ZugrZN3K1Yh1aXKyyOagmHqJd5FU64IX3Phjg response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:39:18 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '15448' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"id": "1", "name": "account-auditor.passes"}, {"id": "2", "name": "account-auditor.timing.95percentile"}, {"id": "3", "name": "account-auditor.timing.avg"}, {"id": "4", "name": "account-auditor.timing.count"}, {"id": "5", "name": "account-auditor.timing.max"}, {"id": "6", "name": "account-auditor.timing.median"}, {"id": "7", "name": "account-replicator.attempts"}, {"id": "8", "name": "account-replicator.diffs"}, {"id": "9", "name": "account-replicator.failures"}, {"id": "10", "name": "account-replicator.no_changes"}, {"id": "11", "name": "account-replicator.rsyncs"}, {"id": "12", "name": "account-replicator.successes"}, {"id": "13", "name": "account-replicator.timing.95percentile"}, {"id": "14", "name": "account-replicator.timing.avg"}, {"id": "15", "name": "account-replicator.timing.count"}, {"id": "16", "name": "account-replicator.timing.max"}, {"id": "17", "name": "account-replicator.timing.median"}, {"id": "18", "name": "account-server.GET.timing.95percentile"}, {"id": "19", "name": "account-server.GET.timing.avg"}, {"id": "20", "name": "account-server.GET.timing.count"}, {"id": "21", "name": "account-server.GET.timing.max"}, {"id": "22", "name": "account-server.GET.timing.median"}, {"id": "23", "name": "account-server.HEAD.timing.95percentile"}, {"id": "24", "name": "account-server.HEAD.timing.avg"}, {"id": "25", "name": "account-server.HEAD.timing.count"}, {"id": "26", "name": "account-server.HEAD.timing.max"}, {"id": "27", "name": "account-server.HEAD.timing.median"}, {"id": "28", "name": "account-server.PUT.timing.95percentile"}, {"id": "29", "name": "account-server.PUT.timing.avg"}, {"id": "30", "name": "account-server.PUT.timing.count"}, {"id": "31", "name": "account-server.PUT.timing.max"}, {"id": "32", "name": "account-server.PUT.timing.median"}, {"id": "33", "name": "account-server.REPLICATE.timing.95percentile"}, {"id": "34", "name": "account-server.REPLICATE.timing.avg"}, {"id": "35", "name": "account-server.REPLICATE.timing.count"}, {"id": "36", "name": "account-server.REPLICATE.timing.max"}, {"id": "37", "name": "account-server.REPLICATE.timing.median"}, {"id": "38", "name": "aggregation-bolt.execute-count.filtering-bolt_alarm-creation-stream"}, {"id": "39", "name": "blackbox.compute_status"}, {"id": "40", "name": "blackbox.dns_status"}, {"id": "41", "name": "blackbox.identity_status"}, {"id": "42", "name": "blackbox.image_status"}, {"id": "43", "name": "blackbox.monitor_status"}, {"id": "44", "name": "blackbox.network_status"}, {"id": "45", "name": "blackbox.object_status"}, {"id": "46", "name": "blackbox.router_status"}, {"id": "47", "name": "blackbox.volume_status"}, {"id": "48", "name": "container-auditor.passes"}, {"id": "49", "name": "container-auditor.timing.95percentile"}, {"id": "50", "name": "container-auditor.timing.avg"}, {"id": "51", "name": "container-auditor.timing.count"}, {"id": "52", "name": "container-auditor.timing.max"}, {"id": "53", "name": "container-auditor.timing.median"}, {"id": "54", "name": "container-replicator.attempts"}, {"id": "55", "name": "container-replicator.diffs"}, {"id": "56", "name": "container-replicator.failures"}, {"id": "57", "name": "container-replicator.no_changes"}, {"id": "58", "name": "container-replicator.remote_merges"}, {"id": "59", "name": "container-replicator.removes.rhel-swift"}, {"id": "60", "name": "container-replicator.rsyncs"}, {"id": "61", "name": "container-replicator.successes"}, {"id": "62", "name": "container-replicator.timing.95percentile"}, {"id": "63", "name": "container-replicator.timing.avg"}, {"id": "64", "name": "container-replicator.timing.count"}, {"id": "65", "name": "container-replicator.timing.max"}, {"id": "66", "name": "container-replicator.timing.median"}, {"id": "67", "name": "container-server.DELETE.errors.timing.95percentile"}, {"id": "68", "name": "container-server.DELETE.errors.timing.avg"}, {"id": "69", "name": "container-server.DELETE.errors.timing.count"}, {"id": "70", "name": "container-server.DELETE.errors.timing.max"}, {"id": "71", "name": "container-server.DELETE.errors.timing.median"}, {"id": "72", "name": "container-server.DELETE.timing.95percentile"}, {"id": "73", "name": "container-server.DELETE.timing.avg"}, {"id": "74", "name": "container-server.DELETE.timing.count"}, {"id": "75", "name": "container-server.DELETE.timing.max"}, {"id": "76", "name": "container-server.DELETE.timing.median"}, {"id": "77", "name": "container-server.GET.timing.95percentile"}, {"id": "78", "name": "container-server.GET.timing.avg"}, {"id": "79", "name": "container-server.GET.timing.count"}, {"id": "80", "name": "container-server.GET.timing.max"}, {"id": "81", "name": "container-server.GET.timing.median"}, {"id": "82", "name": "container-server.HEAD.timing.95percentile"}, {"id": "83", "name": "container-server.HEAD.timing.avg"}, {"id": "84", "name": "container-server.HEAD.timing.count"}, {"id": "85", "name": "container-server.HEAD.timing.max"}, {"id": "86", "name": "container-server.HEAD.timing.median"}, {"id": "87", "name": "container-server.POST.timing.95percentile"}, {"id": "88", "name": "container-server.POST.timing.avg"}, {"id": "89", "name": "container-server.POST.timing.count"}, {"id": "90", "name": "container-server.POST.timing.max"}, {"id": "91", "name": "container-server.POST.timing.median"}, {"id": "92", "name": "container-server.PUT.timing.95percentile"}, {"id": "93", "name": "container-server.PUT.timing.avg"}, {"id": "94", "name": "container-server.PUT.timing.count"}, {"id": "95", "name": "container-server.PUT.timing.max"}, {"id": "96", "name": "container-server.PUT.timing.median"}, {"id": "97", "name": "container-server.REPLICATE.timing.95percentile"}, {"id": "98", "name": "container-server.REPLICATE.timing.avg"}, {"id": "99", "name": "container-server.REPLICATE.timing.count"}, {"id": "100", "name": "container-server.REPLICATE.timing.max"}, {"id": "101", "name": "container-server.REPLICATE.timing.median"}, {"id": "102", "name": "container-sync.deletes"}, {"id": "103", "name": "container-sync.failures"}, {"id": "104", "name": "container-sync.puts"}, {"id": "105", "name": "container-sync.skips"}, {"id": "106", "name": "container-sync.syncs"}, {"id": "107", "name": "container-updater.no_changes"}, {"id": "108", "name": "container-updater.successes"}, {"id": "109", "name": "container-updater.timing.95percentile"}, {"id": "110", "name": "container-updater.timing.avg"}, {"id": "111", "name": "container-updater.timing.count"}, {"id": "112", "name": "container-updater.timing.max"}, {"id": "113", "name": "container-updater.timing.median"}, {"id": "114", "name": "cpu.idle_perc"}, {"id": "115", "name": "cpu.stolen_perc"}, {"id": "116", "name": "cpu.system_perc"}, {"id": "117", "name": "cpu.user_perc"}, {"id": "118", "name": "cpu.wait_perc"}, {"id": "119", "name": "crash.dump_count"}, {"id": "120", "name": "datapath.file_transfer_object_store_status"}, {"id": "121", "name": "datapath.nslookup_common_status"}, {"id": "122", "name": "datapath.nslookup_kvm_instance_status"}, {"id": "123", "name": "datapath.nslookup_vmware_instance_status"}, {"id": "124", "name": "datapath.tcp_connect_to_kvm_instance_status"}, {"id": "125", "name": "datapath.tcp_connect_to_vmware_instance_status"}, {"id": "126", "name": "disk.inode_used_perc"}, {"id": "127", "name": "disk.space_used_perc"}, {"id": "128", "name": "dns.bind.incoming_queries"}, {"id": "129", "name": "dns.bind.responses"}, {"id": "130", "name": "dns.bind.up"}, {"id": "131", "name": "elasticsearch.active_primary_shards"}, {"id": "132", "name": "elasticsearch.active_shards"}, {"id": "133", "name": "elasticsearch.cluster_status"}, {"id": "134", "name": "elasticsearch.docs.count"}, {"id": "135", "name": "elasticsearch.docs.deleted"}, {"id": "136", "name": "elasticsearch.fielddata.evictions"}, {"id": "137", "name": "elasticsearch.fielddata.size"}, {"id": "138", "name": "elasticsearch.flush.total"}, {"id": "139", "name": "elasticsearch.flush.total.time"}, {"id": "140", "name": "elasticsearch.fs.total.available_in_bytes"}, {"id": "141", "name": "elasticsearch.fs.total.free_in_bytes"}, {"id": "142", "name": "elasticsearch.fs.total.total_in_bytes"}, {"id": "143", "name": "elasticsearch.get.current"}, {"id": "144", "name": "elasticsearch.get.exists.time"}, {"id": "145", "name": "elasticsearch.get.exists.total"}, {"id": "146", "name": "elasticsearch.get.missing.time"}, {"id": "147", "name": "elasticsearch.get.missing.total"}, {"id": "148", "name": "elasticsearch.get.time"}, {"id": "149", "name": "elasticsearch.get.total"}, {"id": "150", "name": "elasticsearch.http.current_open"}, {"id": "151", "name": "elasticsearch.http.total_opened"}, {"id": "152", "name": "elasticsearch.indexing.delete.current"}, {"id": "153", "name": "elasticsearch.indexing.delete.time"}, {"id": "154", "name": "elasticsearch.indexing.delete.total"}, {"id": "155", "name": "elasticsearch.indexing.index.current"}, {"id": "156", "name": "elasticsearch.indexing.index.time"}, {"id": "157", "name": "elasticsearch.indexing.index.total"}, {"id": "158", "name": "elasticsearch.indices.segments.count"}, {"id": "159", "name": "elasticsearch.indices.segments.fixed_bit_set_memory_in_bytes"}, {"id": "160", "name": "elasticsearch.indices.segments.index_writer_max_memory_in_bytes"}, {"id": "161", "name": "elasticsearch.indices.segments.index_writer_memory_in_bytes"}, {"id": "162", "name": "elasticsearch.indices.segments.memory_in_bytes"}, {"id": "163", "name": "elasticsearch.indices.segments.version_map_memory_in_bytes"}, {"id": "164", "name": "elasticsearch.indices.translog.operations"}, {"id": "165", "name": "elasticsearch.indices.translog.size_in_bytes"}, {"id": "166", "name": "elasticsearch.initializing_shards"}, {"id": "167", "name": "elasticsearch.merges.current"}, {"id": "168", "name": "elasticsearch.merges.current.docs"}, {"id": "169", "name": "elasticsearch.merges.current.size"}, {"id": "170", "name": "elasticsearch.merges.total"}, {"id": "171", "name": "elasticsearch.merges.total.docs"}, {"id": "172", "name": "elasticsearch.merges.total.size"}, {"id": "173", "name": "elasticsearch.merges.total.time"}, {"id": "174", "name": "elasticsearch.number_of_data_nodes"}, {"id": "175", "name": "elasticsearch.number_of_nodes"}, {"id": "176", "name": "elasticsearch.pending_tasks_priority_high"}, {"id": "177", "name": "elasticsearch.pending_tasks_priority_urgent"}, {"id": "178", "name": "elasticsearch.pending_tasks_total"}, {"id": "179", "name": "elasticsearch.process.open_fd"}, {"id": "180", "name": "elasticsearch.refresh.total"}, {"id": "181", "name": "elasticsearch.refresh.total.time"}, {"id": "182", "name": "elasticsearch.relocating_shards"}, {"id": "183", "name": "elasticsearch.search.fetch.current"}, {"id": "184", "name": "elasticsearch.search.fetch.open_contexts"}, {"id": "185", "name": "elasticsearch.search.fetch.time"}, {"id": "186", "name": "elasticsearch.search.fetch.total"}, {"id": "187", "name": "elasticsearch.search.query.current"}, {"id": "188", "name": "elasticsearch.search.query.time"}, {"id": "189", "name": "elasticsearch.search.query.total"}, {"id": "190", "name": "elasticsearch.store.size"}, {"id": "191", "name": "elasticsearch.thread_pool.bulk.active"}, {"id": "192", "name": "elasticsearch.thread_pool.bulk.queue"}, {"id": "193", "name": "elasticsearch.thread_pool.bulk.rejected"}, {"id": "194", "name": "elasticsearch.thread_pool.bulk.threads"}, {"id": "195", "name": "elasticsearch.thread_pool.flush.active"}, {"id": "196", "name": "elasticsearch.thread_pool.flush.queue"}, {"id": "197", "name": "elasticsearch.thread_pool.flush.threads"}, {"id": "198", "name": "elasticsearch.thread_pool.generic.active"}, {"id": "199", "name": "elasticsearch.thread_pool.generic.queue"}, {"id": "200", "name": "elasticsearch.thread_pool.generic.threads"}, {"id": "201", "name": "elasticsearch.thread_pool.get.active"}, {"id": "202", "name": "elasticsearch.thread_pool.get.queue"}, {"id": "203", "name": "elasticsearch.thread_pool.get.threads"}, {"id": "204", "name": "elasticsearch.thread_pool.index.active"}, {"id": "205", "name": "elasticsearch.thread_pool.index.queue"}, {"id": "206", "name": "elasticsearch.thread_pool.index.threads"}, {"id": "207", "name": "elasticsearch.thread_pool.management.active"}, {"id": "208", "name": "elasticsearch.thread_pool.management.queue"}, {"id": "209", "name": "elasticsearch.thread_pool.management.threads"}, {"id": "210", "name": "elasticsearch.thread_pool.percolate.active"}, {"id": "211", "name": "elasticsearch.thread_pool.percolate.queue"}, {"id": "212", "name": "elasticsearch.thread_pool.percolate.threads"}, {"id": "213", "name": "elasticsearch.thread_pool.refresh.active"}, {"id": "214", "name": "elasticsearch.thread_pool.refresh.queue"}, {"id": "215", "name": "elasticsearch.thread_pool.refresh.threads"}, {"id": "216", "name": "elasticsearch.thread_pool.search.active"}, {"id": "217", "name": "elasticsearch.thread_pool.search.queue"}, {"id": "218", "name": "elasticsearch.thread_pool.search.threads"}, {"id": "219", "name": "elasticsearch.thread_pool.snapshot.active"}, {"id": "220", "name": "elasticsearch.thread_pool.snapshot.queue"}, {"id": "221", "name": "elasticsearch.thread_pool.snapshot.threads"}, {"id": "222", "name": "elasticsearch.transport.rx_count"}, {"id": "223", "name": "elasticsearch.transport.rx_size"}, {"id": "224", "name": "elasticsearch.transport.server_open"}, {"id": "225", "name": "elasticsearch.transport.tx_count"}, {"id": "226", "name": "elasticsearch.transport.tx_size"}, {"id": "227", "name": "elasticsearch.unassigned_shards"}, {"id": "228", "name": "filtering-bolt.execute-count.event-bolt_metric-alarm-events"}, {"id": "229", "name": "http_response_time"}, {"id": "230", "name": "http_status"}, {"id": "231", "name": "influxdb.httpd.ping_req"}, {"id": "232", "name": "influxdb.httpd.points_write_ok"}, {"id": "233", "name": "influxdb.httpd.query_req"}, {"id": "234", "name": "influxdb.httpd.query_resp_bytes"}, {"id": "235", "name": "influxdb.httpd.req"}, {"id": "236", "name": "influxdb.httpd.write_req"}, {"id": "237", "name": "influxdb.httpd.write_req_bytes"}, {"id": "238", "name": "influxdb.shard.fields_create"}, {"id": "239", "name": "influxdb.shard.series_create"}, {"id": "240", "name": "influxdb.shard.write_points_ok"}, {"id": "241", "name": "influxdb.shard.write_req"}, {"id": "242", "name": "io.read_kbytes_sec"}, {"id": "243", "name": "io.read_req_sec"}, {"id": "244", "name": "io.read_time_sec"}, {"id": "245", "name": "io.write_kbytes_sec"}, {"id": "246", "name": "io.write_req_sec"}, {"id": "247", "name": "io.write_time_sec"}, {"id": "248", "name": "jvm.gc.collectors.old.collection_time"}, {"id": "249", "name": "jvm.gc.collectors.old.count"}, {"id": "250", "name": "jvm.gc.collectors.young.collection_time"}, {"id": "251", "name": "jvm.gc.collectors.young.count"}, {"id": "252", "name": "jvm.mem.heap_committed"}, {"id": "253", "name": "jvm.mem.heap_in_use"}, {"id": "254", "name": "jvm.mem.heap_max"}, {"id": "255", "name": "jvm.mem.heap_used"}, {"id": "256", "name": "jvm.mem.non_heap_committed"}, {"id": "257", "name": "jvm.mem.non_heap_used"}, {"id": "258", "name": "jvm.threads.count"}, {"id": "259", "name": "jvm.threads.peak_count"}, {"id": "260", "name": "kube.health.kube_healthz_api_status"}, {"id": "261", "name": "kube.healthz.api.status.kube_healthz_api_status"}, {"id": "262", "name": "kubernetes.container_cpu_usage_sec"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/metrics/names", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:39:18 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/notification-methods_crud.yml000066400000000000000000000423541476630434000311430ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: UTF-8 string: '{"name":"important notification","type":"EMAIL","address":"admin@example.com","period":0}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 201 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:28 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '280' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"name": "important notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80", "rel": "self"}], "period": 0, "address": "admin@example.com", "type": "EMAIL", "id": "6738c694-72ee-4379-8f8d-e861d1624a80"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:28 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:28 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2200' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"name": "Swift Operation DL", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/17ba8ca4-6312-4333-ad1f-f656e5d72824", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "17ba8ca4-6312-4333-ad1f-f656e5d72824"}, {"name": "test.monasca.fitness.notification.20160825135325", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/19c20ad3-7a39-48ba-82eb-92f681dbc47f", "rel": "self"}], "period": 0, "address": "http://devstack.openstack.stack:13131", "type": "WEBHOOK", "id": "19c20ad3-7a39-48ba-82eb-92f681dbc47f"}, {"name": "important notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80", "rel": "self"}], "period": 0, "address": "admin@example.com", "type": "EMAIL", "id": "6738c694-72ee-4379-8f8d-e861d1624a80"}, {"name": "DL Monsoon Alerts Green ", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3"}, {"name": "Arno Uhlig", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/9c98287b-abde-47b9-aa6a-14ad7cbe7d2b", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "9c98287b-abde-47b9-aa6a-14ad7cbe7d2b"}, {"name": "mailto-team-data-services", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"}, {"name": "hgw", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/c997084b-5338-4981-98cd-b8ee13b2acf7", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "c997084b-5338-4981-98cd-b8ee13b2acf7"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:28 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:28 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2200' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"name": "Swift Operation DL", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/17ba8ca4-6312-4333-ad1f-f656e5d72824", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "17ba8ca4-6312-4333-ad1f-f656e5d72824"}, {"name": "test.monasca.fitness.notification.20160825135325", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/19c20ad3-7a39-48ba-82eb-92f681dbc47f", "rel": "self"}], "period": 0, "address": "http://devstack.openstack.stack:13131", "type": "WEBHOOK", "id": "19c20ad3-7a39-48ba-82eb-92f681dbc47f"}, {"name": "important notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80", "rel": "self"}], "period": 0, "address": "admin@example.com", "type": "EMAIL", "id": "6738c694-72ee-4379-8f8d-e861d1624a80"}, {"name": "DL Monsoon Alerts Green ", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3"}, {"name": "Arno Uhlig", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/9c98287b-abde-47b9-aa6a-14ad7cbe7d2b", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "9c98287b-abde-47b9-aa6a-14ad7cbe7d2b"}, {"name": "mailto-team-data-services", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"}, {"name": "hgw", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/c997084b-5338-4981-98cd-b8ee13b2acf7", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "c997084b-5338-4981-98cd-b8ee13b2acf7"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:28 GMT - request: method: put uri: http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80 body: encoding: UTF-8 string: '{"name":"important notification","address":"notification_methods@example.com","type":"EMAIL","period":0}' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:29 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '332' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"name": "important notification", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80/6738c694-72ee-4379-8f8d-e861d1624a80", "rel": "self"}], "period": 0, "address": "notification_methods@example.com", "type": "EMAIL", "id": "6738c694-72ee-4379-8f8d-e861d1624a80"}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:29 GMT - request: method: delete uri: http://devstack.openstack.stack/v2.0/notification-methods/6738c694-72ee-4379-8f8d-e861d1624a80 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 204 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:29 GMT Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:29 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:29 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1918' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"name": "Swift Operation DL", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/17ba8ca4-6312-4333-ad1f-f656e5d72824", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "17ba8ca4-6312-4333-ad1f-f656e5d72824"}, {"name": "test.monasca.fitness.notification.20160825135325", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/19c20ad3-7a39-48ba-82eb-92f681dbc47f", "rel": "self"}], "period": 0, "address": "http://devstack.openstack.stack:13131", "type": "WEBHOOK", "id": "19c20ad3-7a39-48ba-82eb-92f681dbc47f"}, {"name": "DL Monsoon Alerts Green ", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3"}, {"name": "Arno Uhlig", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/9c98287b-abde-47b9-aa6a-14ad7cbe7d2b", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "9c98287b-abde-47b9-aa6a-14ad7cbe7d2b"}, {"name": "mailto-team-data-services", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"}, {"name": "hgw", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/c997084b-5338-4981-98cd-b8ee13b2acf7", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "c997084b-5338-4981-98cd-b8ee13b2acf7"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:29 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:29 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1918' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '{"elements": [{"name": "Swift Operation DL", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/17ba8ca4-6312-4333-ad1f-f656e5d72824", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "17ba8ca4-6312-4333-ad1f-f656e5d72824"}, {"name": "test.monasca.fitness.notification.20160825135325", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/19c20ad3-7a39-48ba-82eb-92f681dbc47f", "rel": "self"}], "period": 0, "address": "http://devstack.openstack.stack:13131", "type": "WEBHOOK", "id": "19c20ad3-7a39-48ba-82eb-92f681dbc47f"}, {"name": "DL Monsoon Alerts Green ", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "97311b1b-bf6a-4fb0-99b8-2b0e24e9d1f3"}, {"name": "Arno Uhlig", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/9c98287b-abde-47b9-aa6a-14ad7cbe7d2b", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "9c98287b-abde-47b9-aa6a-14ad7cbe7d2b"}, {"name": "mailto-team-data-services", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "ad3ce2b6-f5a5-4a06-99c4-e791f767b0a6"}, {"name": "hgw", "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods/c997084b-5338-4981-98cd-b8ee13b2acf7", "rel": "self"}], "period": 0, "address": "mail@example.org", "type": "EMAIL", "id": "c997084b-5338-4981-98cd-b8ee13b2acf7"}], "links": [{"href": "http://devstack.openstack.stack/v2.0/notification-methods", "rel": "self"}]}' http_version: recorded_at: Wed, 21 Sep 2016 15:41:29 GMT - request: method: get uri: http://devstack.openstack.stack/v2.0/notification-methods/bogus_id body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.42.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - gAAAAABX4qoodffg4YThj3lwf-xHWSAfA8Taj2oa84XO5VxZXUlGk4T_yqnk3-72pLNmZvtel9oeLS8IR-uS7AhQ_RqOxadekGy_wD070JOCB5dffqdxVhytoQBkV6TZQWUDjbGaPMoHkOod8VEIwB7CNcAE9hccDRGF4hjBzdd8Hr2tPxim0dJtKNsS-S18GKsDK8_U3Tpmxzf2Uuzi_ZOtSMRHIt9XHmdQuDS4O3cfgZyVS1q-Hh0 response: status: code: 404 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 21 Sep 2016 15:41:29 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '0' Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Connection: - Keep-alive body: encoding: ASCII-8BIT string: '' http_version: recorded_at: Wed, 21 Sep 2016 15:41:29 GMT recorded_with: VCR 3.0.3 fog-openstack-1.1.5/spec/fixtures/openstack/monitoring/statistics_list.yml000066400000000000000000015617201476630434000272300ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack/v2.0/metrics/statistics?merge_metrics=true&name=cpu.system_perc&start_time=2016-04-01T14:43:00Z&statistics=avg,min,max,sum,count body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.39.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 58f9614d13f74cc9865024446023941a response: status: code: 200 message: '' headers: Server: - nginx/1.9.13 Date: - Fri, 20 May 2016 15:16:57 GMT Content-Type: - application/json Connection: - keep-alive Vary: - Accept-Encoding, Accept-Encoding body: encoding: UTF-8 string: '{"links":[{"rel":"self","href":"http://devstack.openstack.stack/v2.0/metrics/statistics?merge_metrics=true&name=cpu.system_perc&start_time=2016-04-01T14%3A43%3A00Z&statistics=avg%2Cmin%2Cmax%2Csum%2Ccount"},{"rel":"next","href":"http://devstack.openstack.stack/v2.0/metrics/statistics?offset=2016-05-06T07%3A55%3A00Z&merge_metrics=true&name=cpu.system_perc&start_time=2016-04-01T14%3A43%3A00Z&statistics=avg%2Cmin%2Cmax%2Csum%2Ccount"}],"elements":[{"id":"2016-05-06T07:55:00Z","name":"cpu.system_perc","dimensions":{},"columns":["timestamp","avg","min","max","sum","count"],"statistics":[["2016-04-01T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-01T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-02T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-03T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-04T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-05T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-06T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-07T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-08T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-09T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-10T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-11T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-12T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-13T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-14T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-15T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-16T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-17T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-18T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-19T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-20T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-21T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-22T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-23T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-24T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-25T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-26T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-27T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-28T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-29T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-04-30T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-01T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-02T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-03T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-04T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T07:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T08:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T09:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T10:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T11:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T12:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T13:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T14:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T15:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T16:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T17:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T18:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T19:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T20:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T21:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T22:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-05T23:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T00:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T01:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T02:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T03:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T04:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T05:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T06:55:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:00:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:05:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:10:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:15:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:20:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:25:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:30:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:35:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:40:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:45:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:50:00Z",0.0,0.0,0.0,0.0,0.0],["2016-05-06T07:55:00Z",0.0,0.0,0.0,0.0,0.0]]}]}' http_version: recorded_at: Fri, 20 May 2016 15:16:57 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/network/000077500000000000000000000000001476630434000225505ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/network/common_setup.yml000066400000000000000000000422141476630434000260060ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1cc71e8d89934d00a84d4ef13a048da3 response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '120' Date: - Wed, 11 May 2016 11:30:07 GMT body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9696/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Wed, 11 May 2016 11:30:12 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Wed, 11 May 2016 11:30:07 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 3b58d1663a9a49b2af240e68bfb08081 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-61615d9a-8f2c-4642-9171-6e83b674fef8 Content-Length: - '2485' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "289a88fea19045b0a042d0026ac5ee6d", "name": "admin"}], "expires_at": "2016-05-11T12:30:07.699816Z", "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "10d69506a8f3408482090ef461813e6f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "9f04f53d3f7147db9d7524838496a9c9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "e5b2006675454d7bab41e6e307a3526b"}], "type": "image", "id": "07c0289b6ed24ab2ad9ab251d69bc360", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "63baac6b30244e39982163edb3eea7a1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "7cbbd12dfc7d498a8e4be71b93e26ba4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "f1c9219c25d4474a8d8073274d210709"}], "type": "network", "id": "3383f3f70d5844fa929196ac42f740ee", "name": "neutron"}, {"endpoints": [], "type": "compute_legacy", "id": "43fc06691cf3403e9f52306dc155c44b", "name": "nova_legacy"}, {"endpoints": [], "type": "compute", "id": "82a87e6c324c41228b2387d701b56572", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "internal", "id": "2f46da49aa854fec81889bb74f53782a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357", "region": "RegionOne", "interface": "admin", "id": "6c2384bcf3fb4460811caf75f06aacb9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "public", "id": "e31e8a4680b047a6adc7eaeec5b2c2c8"}], "type": "identity", "id": "d30ec3e1840b4e5abbc91d29341ba4cd", "name": "keystone"}, {"endpoints": [], "type": "volumev2", "id": "dd17c542cd954c4da3563375c61b6ab5", "name": "cinderv2"}, {"endpoints": [], "type": "volume", "id": "e1d3a6c255fb4e3c8dfbba65e6f8a88d", "name": "cinder"}], "user": {"domain": {"id": "default", "name": "Default"}, "id": "7a92283442cd4b8daf3cdd4ac1d8bb8a", "name": "admin"}, "audit_ids": ["83T_TlkHRw6JItqfK8ctyQ"], "issued_at": "2016-05-11T11:30:07.699864Z"}}' http_version: recorded_at: Wed, 11 May 2016 11:30:12 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Wed, 11 May 2016 12:13:57 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 3529b569335f4a43a40be0cfb0b4e635 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-3673b227-2e41-408c-8292-29ef86eb95b9 Content-Length: - '4829' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "289a88fea19045b0a042d0026ac5ee6d", "name": "admin"}], "is_admin_project": true, "project": {"domain": {"id": "default", "name": "Default"}, "id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "10d69506a8f3408482090ef461813e6f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "9f04f53d3f7147db9d7524838496a9c9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "e5b2006675454d7bab41e6e307a3526b"}], "type": "image", "id": "07c0289b6ed24ab2ad9ab251d69bc360", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "63baac6b30244e39982163edb3eea7a1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "7cbbd12dfc7d498a8e4be71b93e26ba4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "f1c9219c25d4474a8d8073274d210709"}], "type": "network", "id": "3383f3f70d5844fa929196ac42f740ee", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "397dc06293fb4e5fb683ea8c23dc27f4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "95a1e8de18b342ce9f964ee129a5fd69"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "d38553afcb5446d3a38b5d95c74a6b3c"}], "type": "compute_legacy", "id": "43fc06691cf3403e9f52306dc155c44b", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "ca081b14727d4f089c4801869e71dad8"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "d3b1545f1ce44723be67966d0b853c41"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "fa1f5b65b32c4fb38cca2ce9e1fe09e3"}], "type": "compute", "id": "82a87e6c324c41228b2387d701b56572", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "internal", "id": "2f46da49aa854fec81889bb74f53782a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357", "region": "RegionOne", "interface": "admin", "id": "6c2384bcf3fb4460811caf75f06aacb9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "public", "id": "e31e8a4680b047a6adc7eaeec5b2c2c8"}], "type": "identity", "id": "d30ec3e1840b4e5abbc91d29341ba4cd", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "58630521c8214617a1805232d6427131"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "6dce34d56bc6436cafff58c81ca76372"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "8753db765b534d11a7055a21ca1d04ef"}], "type": "volumev2", "id": "dd17c542cd954c4da3563375c61b6ab5", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "27137a813d404515a52155b615295665"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "4dbfad6771ca43b9b6152f52b9166d03"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "692a7d6ac84947868c22f92ca0cd7f58"}], "type": "volume", "id": "e1d3a6c255fb4e3c8dfbba65e6f8a88d", "name": "cinder"}], "expires_at": "2016-05-11T13:13:57.865630Z", "user": {"domain": {"id": "default", "name": "Default"}, "id": "7a92283442cd4b8daf3cdd4ac1d8bb8a", "name": "admin"}, "audit_ids": ["GCbB45jPStquTFlmUDH3Zg"], "issued_at": "2016-05-11T12:13:57.865659Z"}}' http_version: recorded_at: Wed, 11 May 2016 12:14:02 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"5c28403cf669414d8ee179f1e7f205ee"}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Wed, 22 Jun 2016 13:10:59 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 20fe8b89d90f4549b401b4cb2ba2b576 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-437edeaa-a7b5-4244-8c9e-5847f414146a Content-Length: - '4872' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "8126832e336f4232bd8519bda81348db", "name": "admin"}], "is_admin_project": true, "project": {"domain": {"id": "default", "name": "Default"}, "id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "10d69506a8f3408482090ef461813e6f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "9f04f53d3f7147db9d7524838496a9c9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "e5b2006675454d7bab41e6e307a3526b"}], "type": "image", "id": "07c0289b6ed24ab2ad9ab251d69bc360", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "63baac6b30244e39982163edb3eea7a1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "7cbbd12dfc7d498a8e4be71b93e26ba4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "f1c9219c25d4474a8d8073274d210709"}], "type": "network", "id": "3383f3f70d5844fa929196ac42f740ee", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "397dc06293fb4e5fb683ea8c23dc27f4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "95a1e8de18b342ce9f964ee129a5fd69"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "d38553afcb5446d3a38b5d95c74a6b3c"}], "type": "compute_legacy", "id": "43fc06691cf3403e9f52306dc155c44b", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "ca081b14727d4f089c4801869e71dad8"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "d3b1545f1ce44723be67966d0b853c41"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "fa1f5b65b32c4fb38cca2ce9e1fe09e3"}], "type": "compute", "id": "82a87e6c324c41228b2387d701b56572", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "internal", "id": "2f46da49aa854fec81889bb74f53782a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357", "region": "RegionOne", "interface": "admin", "id": "6c2384bcf3fb4460811caf75f06aacb9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000", "region": "RegionOne", "interface": "public", "id": "e31e8a4680b047a6adc7eaeec5b2c2c8"}], "type": "identity", "id": "d30ec3e1840b4e5abbc91d29341ba4cd", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "58630521c8214617a1805232d6427131"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "6dce34d56bc6436cafff58c81ca76372"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "8753db765b534d11a7055a21ca1d04ef"}], "type": "volumev2", "id": "dd17c542cd954c4da3563375c61b6ab5", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "27137a813d404515a52155b615295665"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "4dbfad6771ca43b9b6152f52b9166d03"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "692a7d6ac84947868c22f92ca0cd7f58"}], "type": "volume", "id": "e1d3a6c255fb4e3c8dfbba65e6f8a88d", "name": "cinder"}], "expires_at": "2016-06-22T14:10:59.540733Z", "user": {"domain": {"id": "default", "name": "Default"}, "id": "7a92283442cd4b8daf3cdd4ac1d8bb8a", "name": "admin"}, "audit_ids": ["IpZGnh4WSamqsrLeLJ4vag", "aihbDUUlQ1K-AXEcSyYIWw"], "issued_at": "2016-06-22T13:10:59.626822Z"}}' http_version: recorded_at: Wed, 22 Jun 2016 13:10:59 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/network/rbacs_crud.yml000066400000000000000000000423751476630434000254150ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3529b569335f4a43a40be0cfb0b4e635 response: status: code: 200 message: '' headers: Date: - Wed, 11 May 2016 12:05:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-03b8aa7b-9e49-4af8-98a8-0f68d9ee0c61 Content-Length: - '1458' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6df7cf36158a47e8a7736fd0c7693b06"}, "enabled": true, "id": "6df7cf36158a47e8a7736fd0c7693b06", "parent_id": "default", "domain_id": "default", "name": "alt_demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/d1e053cab7a649c78c81739a189e1fd0"}, "enabled": true, "id": "d1e053cab7a649c78c81739a189e1fd0", "parent_id": "default", "domain_id": "default", "name": "invisible_to_admin"}, {"is_domain": false, "description": "Bootstrap project for initializing the cloud.", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/dc4b3b173ee8467e9e2ae99e5c321d0c"}, "enabled": true, "id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "parent_id": "default", "domain_id": "default", "name": "admin"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/e02755e20b3942e9b68ead0c0d5fa291"}, "enabled": true, "id": "e02755e20b3942e9b68ead0c0d5fa291", "parent_id": "default", "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/fec49ae8596c465ab05895afaed75ff1"}, "enabled": true, "id": "fec49ae8596c465ab05895afaed75ff1", "parent_id": "default", "domain_id": "default", "name": "service"}]}' http_version: recorded_at: Wed, 11 May 2016 12:05:22 GMT - request: method: get uri: http://devstack.openstack.stack:35357/v3/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3529b569335f4a43a40be0cfb0b4e635 response: status: code: 200 message: '' headers: Date: - Wed, 11 May 2016 12:05:18 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-cf6b8ef7-a398-41a0-ae2e-437497bfbecd Content-Length: - '1458' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:35357/v3/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/6df7cf36158a47e8a7736fd0c7693b06"}, "enabled": true, "id": "6df7cf36158a47e8a7736fd0c7693b06", "parent_id": "default", "domain_id": "default", "name": "alt_demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/d1e053cab7a649c78c81739a189e1fd0"}, "enabled": true, "id": "d1e053cab7a649c78c81739a189e1fd0", "parent_id": "default", "domain_id": "default", "name": "invisible_to_admin"}, {"is_domain": false, "description": "Bootstrap project for initializing the cloud.", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/dc4b3b173ee8467e9e2ae99e5c321d0c"}, "enabled": true, "id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "parent_id": "default", "domain_id": "default", "name": "admin"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/e02755e20b3942e9b68ead0c0d5fa291"}, "enabled": true, "id": "e02755e20b3942e9b68ead0c0d5fa291", "parent_id": "default", "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:35357/v3/projects/fec49ae8596c465ab05895afaed75ff1"}, "enabled": true, "id": "fec49ae8596c465ab05895afaed75ff1", "parent_id": "default", "domain_id": "default", "name": "service"}]}' http_version: recorded_at: Wed, 11 May 2016 12:05:22 GMT - request: method: post uri: http://devstack.openstack.stack:9696/v2.0/networks body: encoding: UTF-8 string: '{"network":{"name":"foo-net23","tenant_id":"dc4b3b173ee8467e9e2ae99e5c321d0c"}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '596' X-Openstack-Request-Id: - req-dc14a78d-ede6-4249-a0ed-67833d84a778 Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"network": {"status": "ACTIVE", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "description": "", "provider:physical_network": null, "subnets": [], "shared": false, "name": "foo-net23", "created_at": "2016-05-11T12:05:18", "tags": [], "updated_at": "2016-05-11T12:05:18", "provider:network_type": "vxlan", "ipv6_address_scope": null, "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "admin_state_up": true, "ipv4_address_scope": null, "port_security_enabled": true, "mtu": 1450, "id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "provider:segmentation_id": 1087}}' http_version: recorded_at: Wed, 11 May 2016 12:05:22 GMT - request: method: post uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies body: encoding: UTF-8 string: '{"rbac_policy":{"object_type":"network","object_id":"9bd99e12-499e-4f66-80c8-3239d03849bc","tenant_id":"dc4b3b173ee8467e9e2ae99e5c321d0c","target_tenant":"6df7cf36158a47e8a7736fd0c7693b06","action":"access_as_shared"}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '274' X-Openstack-Request-Id: - req-2b133cf6-a8d0-4584-8eeb-519ae364c2f6 Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"rbac_policy": {"target_tenant": "6df7cf36158a47e8a7736fd0c7693b06", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "object_type": "network", "object_id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "action": "access_as_shared", "id": "bc8255ca-0511-469f-87de-042bff269896"}}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/networks/9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '596' X-Openstack-Request-Id: - req-ec1a5f90-34b7-47e0-89ae-7086eee4d021 Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"network": {"status": "ACTIVE", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "description": "", "provider:physical_network": null, "subnets": [], "shared": false, "name": "foo-net23", "created_at": "2016-05-11T12:05:18", "tags": [], "ipv6_address_scope": null, "provider:network_type": "vxlan", "updated_at": "2016-05-11T12:05:18", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "admin_state_up": true, "ipv4_address_scope": null, "port_security_enabled": true, "mtu": 1450, "id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "provider:segmentation_id": 1087}}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies?object_id=9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '278' X-Openstack-Request-Id: - req-5fad5792-88f3-4331-9221-a409535966dc Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"rbac_policies": [{"target_tenant": "6df7cf36158a47e8a7736fd0c7693b06", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "object_type": "network", "object_id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "action": "access_as_shared", "id": "bc8255ca-0511-469f-87de-042bff269896"}]}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies/bc8255ca-0511-469f-87de-042bff269896 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '274' X-Openstack-Request-Id: - req-24cae1c8-405b-41fa-9141-9f8692c8f12f Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"rbac_policy": {"target_tenant": "6df7cf36158a47e8a7736fd0c7693b06", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "object_type": "network", "object_id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "action": "access_as_shared", "id": "bc8255ca-0511-469f-87de-042bff269896"}}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: put uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies/bc8255ca-0511-469f-87de-042bff269896 body: encoding: UTF-8 string: '{"rbac_policy":{"target_tenant":"dc4b3b173ee8467e9e2ae99e5c321d0c"}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '274' X-Openstack-Request-Id: - req-f1608536-bba5-45a4-aea9-164245193f0d Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"rbac_policy": {"target_tenant": "dc4b3b173ee8467e9e2ae99e5c321d0c", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "object_type": "network", "object_id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "action": "access_as_shared", "id": "bc8255ca-0511-469f-87de-042bff269896"}}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/networks/9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '595' X-Openstack-Request-Id: - req-a07f5d53-e868-45ef-987f-0c0a74c2dcfe Date: - Wed, 11 May 2016 12:05:18 GMT body: encoding: UTF-8 string: '{"network": {"status": "ACTIVE", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "description": "", "provider:physical_network": null, "subnets": [], "shared": true, "name": "foo-net23", "created_at": "2016-05-11T12:05:18", "tags": [], "ipv6_address_scope": null, "provider:network_type": "vxlan", "updated_at": "2016-05-11T12:05:18", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "admin_state_up": true, "ipv4_address_scope": null, "port_security_enabled": true, "mtu": 1450, "id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "provider:segmentation_id": 1087}}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies/bc8255ca-0511-469f-87de-042bff269896 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-9122b8d8-679e-403b-b4b1-9b4fdbbfc4c8 Date: - Wed, 11 May 2016 12:05:19 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/rbac-policies?object_id=9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '21' X-Openstack-Request-Id: - req-ac391f88-06c2-4634-9e5f-5a95a0c16fbd Date: - Wed, 11 May 2016 12:05:19 GMT body: encoding: UTF-8 string: '{"rbac_policies": []}' http_version: recorded_at: Wed, 11 May 2016 12:05:23 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/networks/9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '596' X-Openstack-Request-Id: - req-b583a998-3aca-4b72-a074-02500e3a011c Date: - Wed, 11 May 2016 12:05:19 GMT body: encoding: UTF-8 string: '{"network": {"status": "ACTIVE", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "description": "", "provider:physical_network": null, "subnets": [], "shared": false, "name": "foo-net23", "created_at": "2016-05-11T12:05:18", "tags": [], "ipv6_address_scope": null, "provider:network_type": "vxlan", "updated_at": "2016-05-11T12:05:18", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "admin_state_up": true, "ipv4_address_scope": null, "port_security_enabled": true, "mtu": 1450, "id": "9bd99e12-499e-4f66-80c8-3239d03849bc", "provider:segmentation_id": 1087}}' http_version: recorded_at: Wed, 11 May 2016 12:05:24 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/v2.0/networks/9bd99e12-499e-4f66-80c8-3239d03849bc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 2488d4b6fc95451192247b282c89937c response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-0c68b400-4531-4523-8ac0-4f1c1c4fd67d Date: - Wed, 11 May 2016 12:05:19 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 11 May 2016 12:05:24 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/network/subnets_crud.yml000066400000000000000000000116311476630434000257750ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9696/v2.0/networks body: encoding: UTF-8 string: '{"network":{"name":"foo-net12","shared":false}}' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3b58d1663a9a49b2af240e68bfb08081 response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '344' X-Openstack-Request-Id: - req-fdcd2d80-b5c1-4c2f-854b-b4723a66b777 Date: - Thu, 29 Oct 2015 10:19:42 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"network": {"status": "ACTIVE", "subnets": [], "name": "foo-net12", "provider:physical_network": null, "router:external": false, "tenant_id": "ded5a6e0922c4be59e7c15517cfb89ee", "admin_state_up": true, "mtu": 0, "shared": false, "provider:network_type": "vxlan", "id": "212190ec-9075-45d6-b31e-e0649a79b356", "provider:segmentation_id": 1045}}' http_version: recorded_at: Thu, 29 Oct 2015 10:19:38 GMT - request: method: post uri: http://devstack.openstack.stack:9696/v2.0/subnets body: encoding: UTF-8 string: '{"subnet":{"network_id":"212190ec-9075-45d6-b31e-e0649a79b356","cidr":"172.16.0.0/16","ip_version":4,"name":"my-network","gateway_ip":null}}' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3b58d1663a9a49b2af240e68bfb08081 response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '452' X-Openstack-Request-Id: - req-6d6a0167-3c48-49e5-8bf4-10e6aa7f4873 Date: - Thu, 29 Oct 2015 10:19:42 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"subnet": {"name": "my-network", "enable_dhcp": true, "network_id": "212190ec-9075-45d6-b31e-e0649a79b356", "tenant_id": "ded5a6e0922c4be59e7c15517cfb89ee", "dns_nameservers": [], "gateway_ip": null, "ipv6_ra_mode": null, "allocation_pools": [{"start": "172.16.0.1", "end": "172.16.255.254"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "172.16.0.0/16", "id": "3d936331-954b-4d47-9531-f27cea2921da", "subnetpool_id": null}}' http_version: recorded_at: Thu, 29 Oct 2015 10:19:38 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/v2.0/subnets/3d936331-954b-4d47-9531-f27cea2921da body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3b58d1663a9a49b2af240e68bfb08081 response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-e44101b5-1474-4796-85e5-2c451aec45b1 Date: - Thu, 29 Oct 2015 10:19:43 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 29 Oct 2015 10:19:38 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/v2.0/networks/212190ec-9075-45d6-b31e-e0649a79b356 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 3b58d1663a9a49b2af240e68bfb08081 response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-c8c52a10-08ea-4e1f-8915-b5fd33e4d874 Date: - Thu, 29 Oct 2015 10:19:43 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 29 Oct 2015 10:19:38 GMT recorded_with: VCR 2.9.3 fog-openstack-1.1.5/spec/fixtures/openstack/network/token_expiration.yml000066400000000000000000000546721476630434000266730ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 20fe8b89d90f4549b401b4cb2ba2b576 response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '3532' X-Openstack-Request-Id: - req-f70a6dde-2415-42db-9272-270906e7ea27 Date: - Wed, 22 Jun 2016 13:10:59 GMT body: encoding: UTF-8 string: '{"security_groups_links": [{"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "rel": "next"}, {"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=13f64083-2941-42f7-ae85-6526623f9132&page_reverse=True", "rel": "previous"}], "security_groups": [{"tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "description": "Default security group", "id": "13f64083-2941-42f7-ae85-6526623f9132", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "2e6d2aa4-b13d-4c77-9585-ad0f80c686b7", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "737368bc-ec65-471f-aae2-a7811da2deb4", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "9f3418fd-36af-4308-8b77-e118ab71a994", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "edd588d0-dcf5-433b-9299-1aa5d3ac79c4", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}, {"tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "description": "Default security group", "id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "4c6e4076-39cb-413d-8b44-fc4a82e8ec22", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "5926a81f-65d1-40a4-83ca-e1228a84d896", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "66664d72-1820-40c5-a9e3-08b3762e417e", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "8df66230-f388-49f1-8e95-167e289e54d3", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}]}' http_version: recorded_at: Wed, 22 Jun 2016 13:10:59 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 675b2ab2bc4b104b9454f09d98b8ef02 response: status: code: 401 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '23' Www-Authenticate: - Keystone uri='http://devstack.openstack.stack:5000' X-Openstack-Request-Id: - req-36a3a38c-f399-4d05-b628-78476569218e Date: - Wed, 22 Jun 2016 13:10:59 GMT body: encoding: UTF-8 string: Authentication required http_version: recorded_at: Wed, 22 Jun 2016 13:10:59 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 708a20afe0724b84bbc88f63130f5ad1 response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '3532' X-Openstack-Request-Id: - req-31555bfb-020a-43c9-af14-521159cd037e Date: - Wed, 22 Jun 2016 13:10:59 GMT body: encoding: UTF-8 string: '{"security_groups_links": [{"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "rel": "next"}, {"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=13f64083-2941-42f7-ae85-6526623f9132&page_reverse=True", "rel": "previous"}], "security_groups": [{"tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "description": "Default security group", "id": "13f64083-2941-42f7-ae85-6526623f9132", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "2e6d2aa4-b13d-4c77-9585-ad0f80c686b7", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "737368bc-ec65-471f-aae2-a7811da2deb4", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "9f3418fd-36af-4308-8b77-e118ab71a994", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "edd588d0-dcf5-433b-9299-1aa5d3ac79c4", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}, {"tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "description": "Default security group", "id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "4c6e4076-39cb-413d-8b44-fc4a82e8ec22", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "5926a81f-65d1-40a4-83ca-e1228a84d896", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "66664d72-1820-40c5-a9e3-08b3762e417e", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "8df66230-f388-49f1-8e95-167e289e54d3", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}]}' http_version: recorded_at: Wed, 22 Jun 2016 13:10:59 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 1da5f03136f88cbb48b4270efa02a807 response: status: code: 401 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '23' Www-Authenticate: - Keystone uri='http://devstack.openstack.stack:5000' X-Openstack-Request-Id: - req-5e684870-d5e0-41f6-bd20-387b73cdc7a5 Date: - Wed, 22 Jun 2016 13:11:00 GMT body: encoding: UTF-8 string: Authentication required http_version: recorded_at: Wed, 22 Jun 2016 13:11:00 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Wed, 22 Jun 2016 13:11:00 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - e5bc71f01dd642818f02b313744a6a4a Vary: - X-Auth-Token X-Openstack-Request-Id: - req-c2bb300f-04ab-4ae4-8b9b-b489d1e125da Content-Length: - '4837' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "8126832e336f4232bd8519bda81348db", "name": "neutron_admin"}], "is_admin_project": true, "project": {"domain": {"id": "default", "name": "Default"}, "id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "10d69506a8f3408482090ef461813e6f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "9f04f53d3f7147db9d7524838496a9c9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "e5b2006675454d7bab41e6e307a3526b"}], "type": "image", "id": "07c0289b6ed24ab2ad9ab251d69bc360", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "63baac6b30244e39982163edb3eea7a1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "7cbbd12dfc7d498a8e4be71b93e26ba4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "f1c9219c25d4474a8d8073274d210709"}], "type": "network", "id": "3383f3f70d5844fa929196ac42f740ee", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "397dc06293fb4e5fb683ea8c23dc27f4"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "95a1e8de18b342ce9f964ee129a5fd69"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "d38553afcb5446d3a38b5d95c74a6b3c"}], "type": "compute_legacy", "id": "43fc06691cf3403e9f52306dc155c44b", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "ca081b14727d4f089c4801869e71dad8"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "d3b1545f1ce44723be67966d0b853c41"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "fa1f5b65b32c4fb38cca2ce9e1fe09e3"}], "type": "compute", "id": "82a87e6c324c41228b2387d701b56572", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "2f46da49aa854fec81889bb74f53782a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "6c2384bcf3fb4460811caf75f06aacb9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "e31e8a4680b047a6adc7eaeec5b2c2c8"}], "type": "identity", "id": "d30ec3e1840b4e5abbc91d29341ba4cd", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "58630521c8214617a1805232d6427131"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "6dce34d56bc6436cafff58c81ca76372"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "8753db765b534d11a7055a21ca1d04ef"}], "type": "volumev2", "id": "dd17c542cd954c4da3563375c61b6ab5", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "internal", "id": "27137a813d404515a52155b615295665"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "public", "id": "4dbfad6771ca43b9b6152f52b9166d03"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/dc4b3b173ee8467e9e2ae99e5c321d0c", "region": "RegionOne", "interface": "admin", "id": "692a7d6ac84947868c22f92ca0cd7f58"}], "type": "volume", "id": "e1d3a6c255fb4e3c8dfbba65e6f8a88d", "name": "cinder"}], "expires_at": "2016-06-22T14:11:00.129585Z", "user": {"domain": {"id": "default", "name": "Default"}, "id": "7a92283442cd4b8daf3cdd4ac1d8bb8a", "name": "admin"}, "audit_ids": ["XdZZwDqeTtG48ger-yog1w"], "issued_at": "2016-06-22T13:11:00.129615Z"}}' http_version: recorded_at: Wed, 22 Jun 2016 13:11:00 GMT - request: method: get uri: http://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - e5bc71f01dd642818f02b313744a6a4a response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '120' Date: - Wed, 22 Jun 2016 13:11:00 GMT body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9696/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Wed, 22 Jun 2016 13:11:00 GMT - request: method: get uri: http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - e5bc71f01dd642818f02b313744a6a4a response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '3532' X-Openstack-Request-Id: - req-c5b8e41f-d8f4-4466-bb2c-f17695ca3240 Date: - Wed, 22 Jun 2016 13:11:00 GMT body: encoding: UTF-8 string: '{"security_groups_links": [{"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "rel": "next"}, {"href": "http://devstack.openstack.stack:9696/v2.0/security-groups?limit=2&marker=13f64083-2941-42f7-ae85-6526623f9132&page_reverse=True", "rel": "previous"}], "security_groups": [{"tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "description": "Default security group", "id": "13f64083-2941-42f7-ae85-6526623f9132", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "2e6d2aa4-b13d-4c77-9585-ad0f80c686b7", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "737368bc-ec65-471f-aae2-a7811da2deb4", "remote_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "9f3418fd-36af-4308-8b77-e118ab71a994", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "edd588d0-dcf5-433b-9299-1aa5d3ac79c4", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "13f64083-2941-42f7-ae85-6526623f9132", "tenant_id": "dc4b3b173ee8467e9e2ae99e5c321d0c", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}, {"tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "description": "Default security group", "id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "security_group_rules": [{"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "4c6e4076-39cb-413d-8b44-fc4a82e8ec22", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "5926a81f-65d1-40a4-83ca-e1228a84d896", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv6"}, {"direction": "egress", "protocol": null, "description": "", "port_range_max": null, "id": "66664d72-1820-40c5-a9e3-08b3762e417e", "remote_group_id": null, "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}, {"direction": "ingress", "protocol": null, "description": "", "port_range_max": null, "id": "8df66230-f388-49f1-8e95-167e289e54d3", "remote_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "remote_ip_prefix": null, "security_group_id": "17c0d169-c9b8-4a5f-9818-1f0bb7286cf4", "tenant_id": "b182d5350a95499eb5f42d8c8b65c346", "port_range_min": null, "ethertype": "IPv4"}], "name": "default"}]}' http_version: recorded_at: Wed, 22 Jun 2016 13:11:00 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/000077500000000000000000000000001476630434000247305ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/common_setup.yml000066400000000000000000000332441476630434000301710ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: https://devstack.openstack.stack:8786/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 9dcbbbaf3810497eb66c5e770ca4a6ec response: status: code: 200 message: '' headers: Server: - nginx/1.11.1 Date: - Mon, 05 Sep 2016 14:56:23 GMT Content-Type: - application/json Content-Length: - '461' Connection: - keep-alive Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"versions": [{"status": "SUPPORTED", "updated": "2015-08-27T11:33:21Z", "links": [{"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}, {"href": "https://devstack.openstack.stack:8786/v1/", "rel": "self"}], "min_version": "", "version": "", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.share+json;version=1"}], "id": "v1.0"}, {"status": "CURRENT", "updated": "2015-08-27T11:33:21Z", "links": [{"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}, {"href": "https://devstack.openstack.stack:8786/v2/", "rel": "self"}], "min_version": "2.0", "version": "2.15", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.share+json;version=1"}], "id": "v2.0"}]}' http_version: recorded_at: Mon, 05 Sep 2016 14:56:23 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"admin","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Content-Type: - application/json Connection: - keep-alive X-Openstack-Request-Id: - req-1923f264-7af9-4258-9460-dc23abafa58d Vary: - X-Auth-Token Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload Date: - Fri, 30 Sep 2016 11:15:25 GMT X-Subject-Token: - 833aba07925148f9bac2bc047e858727 Server: - nginx/1.11.3 body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d1c1cd5484214574bb4fbc6595def9a6", "name": "admin"}], "expires_at": "2016-09-30T12:15:25.775629Z", "project": {"domain": {"id": "ca1b267e149d4e44bf53d28d1c8d6bc9", "name": "Default"}, "id": "c60a441e54cd435896a357026aa4050a", "name": "admin"}, "catalog": [{"endpoints": [{"url": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "2f0623e5f9204d83931fd57a1fdb1123"}, {"url": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "988f5ca2e8de446db6a36f54045efeac"}, {"url": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "127042e3843d4fb9b62a79633f95ba15"}], "type": "sharev2", "id": "999ab682b1da4982ac2eaa6d16e2f620", "name": "manilav2"}, {"endpoints": [{"url": "http://devstack.openstack.stack:6385", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "316493ea520142ca98dd3e1d30beb7b5"}, {"url": "http://devstack.openstack.stack:6385", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "d6fa2fe8b1fa434b883fe3328fbdbda5"}, {"url": "http://devstack.openstack.stack:6385", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "0a97f39ddae1412e97a5f21b4432e9a8"}], "type": "baremetal", "id": "93bf146f641b42a1b28c22b64ad0e23d", "name": "ironic"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9311", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "43e287df110b4889a34eecbacdbd8a41"}, {"url": "http://devstack.openstack.stack:9311", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "cc6e3f6b47de4213bdf663675baa4f86"}, {"url": "http://devstack.openstack.stack:9311", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "461849e8b3a342d3a291506e1985b08d"}], "type": "key-manager", "id": "08c811648b504ca2b2cfd88a2a07f194", "name": "barbican"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "52846c1572cf4f7b9074584fd5e9495d"}, {"url": "http://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "0ff5e424c17b4f2fb1aec59abfa482e3"}, {"url": "http://devstack.openstack.stack:8776/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "ecd9d544e4304d53929a1d9befe1eb7a"}], "type": "volumev2", "id": "defd346d6cb145bc8c6dde484ff96e91", "name": "cinderv2"}, {"endpoints": [{"url": "https://devstack.openstack.stack:6001/v1/AUTH_c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "a6ee953c5fc04fd48363c3aaaf469f17"}, {"url": "https://devstack.openstack.stack:6001/v1/AUTH_c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "8ae55154d72c45ac825ad17a5d2fe941"}, {"url": "https://devstack.openstack.stack:6001/v1", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "4b9b0916e18c4757bd42cf29d449754e"}], "type": "object-store", "id": "857f8a01ba7d40399d7d3657c72b500e", "name": "swift"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9292", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "5338ffd565884035941ec3be3ad9002d"}, {"url": "http://devstack.openstack.stack:9292", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "81c0b570c44b4a978eb58a28e605f928"}, {"url": "http://devstack.openstack.stack:9292", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "c3967eb5b037433894e33218e6e953bb"}], "type": "image", "id": "1db038028295470499be817ca0880dbc", "name": "glance"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8070/v2.0", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "099c924a40da4862885ab324be95904f"}, {"url": "https://devstack.openstack.stack:8070/v2.0", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "011d8cb4bd9a4917a6022c93fd105922"}, {"url": "https://devstack.openstack.stack:8070/v2.0", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "6f06c9fb62ee48a1b63cc77b2bf89ae1"}], "type": "monitoring", "id": "6f674669b6a04e15b1d1a97366b00395", "name": "monasca"}, {"endpoints": [{"url": "http://devstack.openstack.stack:8777", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "21e8e980f4a24731baeaea9b7a9a69d6"}, {"url": "http://devstack.openstack.stack:8777", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "2ceaea4ea02746e2a8f5b98c6cae6868"}, {"url": "http://devstack.openstack.stack:8777", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "7b35b996c1024b78951af72248bf96e5"}], "type": "metering", "id": "621f5f04ac2248ec92f12edc8e941fde", "name": "ceilometer"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "383c3adc7a334d1e89f3d824167b4ad2"}, {"url": "http://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "f92bf0dad1e941d09d9a08cb50362510"}, {"url": "http://devstack.openstack.stack:8774/v2/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "da09586d8bb44903a53efcebe67841d9"}], "type": "compute", "id": "45b131798dc240c4b5d75e024dffc5b5", "name": "nova"}, {"endpoints": [{"url": "https://devstack.openstack.stack:5000/v3", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "7859f84c67d740b294c9a607d03c2991"}, {"url": "http://devstack.openstack.stack:5000/v3", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a2cff5bcad944eb4a10c06e6c05140eb"}, {"url": "devstack.openstack.stack:5000/v3", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "5973c23918b8460886140c5ed6a5411b"}], "type": "identity", "id": "70c56d9a4833404e823ba1195a0f1a63", "name": "keystone"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "aa42c3a4f7b54d95819fc6481626cedc"}, {"url": "https://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "68abd86060354f83932f7d283339eff1"}, {"url": "https://devstack.openstack.stack:8786/v1/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "52450fbc1b4e48cda51bb5e58ab4b15f"}], "type": "share", "id": "56626b3178214332873f8a277b497e3e", "name": "manila"}, {"endpoints": [{"url": "https://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "6f338859ed944a10937bee3e2a580f22"}, {"url": "http://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "ef38079803a548dfb1937e363b404e23"}, {"url": "http://devstack.openstack.stack:8776/v1/c60a441e54cd435896a357026aa4050a", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "4bf258d657234ceaa573f02cc5203895"}], "type": "volume", "id": "e967f0a7931e49a4b235239f4fc0ed0e", "name": "cinder"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9696", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "12c7b0cb1f804325bd025fb32d8c33e7"}, {"url": "https://devstack.openstack.stack:9696", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "a4e60839ebf54e02a6202c164cbc6a6e"}, {"url": "https://devstack.openstack.stack:9696", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "9ad2510072024ecf8363c9d18eb4b431"}], "type": "network", "id": "5841d2e972ff44fdb1c789d5261f7318", "name": "neutron"}, {"endpoints": [{"url": "https://devstack.openstack.stack:9001", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "692e55cfdb704300967c7da0c55a43bb"}, {"url": "https://devstack.openstack.stack:9001", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "bcfa65f36471406f88b89706274d4465"}, {"url": "https://devstack.openstack.stack:9001", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "57f2b925603f4541b421bea815001b22"}], "type": "dns", "id": "1010a70e914348b59999eefc25b30e7d", "name": "designate"}], "user": {"domain": {"id": "ca1b267e149d4e44bf53d28d1c8d6bc9", "name": "Default"}, "id": "c967b8ba7651e623e91733b25b5834589c48ea6ea826219494316be042429a00", "name": "admin"}, "audit_ids": ["ZlcDBHPjSeyD83V0v2zgew"], "issued_at": "2016-09-30T11:15:25.000000Z"}}' http_version: recorded_at: Fri, 30 Sep 2016 11:15:25 GMT - request: method: get uri: https://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 12:18:20 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '131' Connection: - keep-alive Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "https://devstack.openstack.stack:9696/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Fri, 30 Sep 2016 12:18:20 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/share_actions.yml000066400000000000000000002020121476630434000302720ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/networks body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:42 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2322' Connection: - keep-alive X-Openstack-Request-Id: - req-258e3573-a006-44e6-ace0-a80768d52e18 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"networks": [{"status": "ACTIVE", "subnets": ["f8215b4c-b788-4c56-bfc9-11dce4f88d37"], "availability_zone_hints": [], "availability_zones": ["nova"], "name": "private", "admin_state_up": true, "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "tags": [], "updated_at": "2016-09-08T13:28:54", "ipv6_address_scope": null, "router:external": false, "ipv4_address_scope": null, "shared": false, "mtu": 1450, "id": "169636be-3aa3-4b23-8e48-96a81198085f", "description": ""}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:42 GMT - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/subnets body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:42 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1719' Connection: - keep-alive X-Openstack-Request-Id: - req-d4196ca2-0e72-4c7c-b4eb-85b76e8c0003 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"subnets": [{"description": "", "enable_dhcp": true, "network_id": "169636be-3aa3-4b23-8e48-96a81198085f", "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "dns_nameservers": [], "updated_at": "2016-09-08T13:28:54", "gateway_ip": "10.10.42.1", "ipv6_ra_mode": null, "allocation_pools": [{"start": "10.10.42.2", "end": "10.10.42.14"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "10.10.42.0/28", "id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "subnetpool_id": null, "name": "private_sub"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:42 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks body: encoding: UTF-8 string: '{"share_network":{"name":"fog_share_action_net","neutron_net_id":"169636be-3aa3-4b23-8e48-96a81198085f","neutron_subnet_id":"f8215b4c-b788-4c56-bfc9-11dce4f88d37"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:42 GMT Content-Type: - application/json Content-Length: - '453' Connection: - keep-alive X-Compute-Request-Id: - req-af8a3c4e-61bd-425a-8cf1-7e99540329ea X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_action_net", "segmentation_id": null, "created_at": "2016-10-10T12:52:42.619747", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": null, "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "description": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:42 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares body: encoding: UTF-8 string: '{"share":{"share_proto":"NFS","size":1,"name":"fog_share_action","share_network_id":"55f0403a-bfaf-4be3-b9bd-d86e3e453a3a"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:42 GMT Content-Type: - application/json Content-Length: - '1037' Connection: - keep-alive X-Compute-Request-Id: - req-211bc8e0-4809-4d70-ab00-5d9698cccd1d X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": null, "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": null, "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:42 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:43 GMT Content-Type: - application/json Content-Length: - '1091' Connection: - keep-alive X-Compute-Request-Id: - req-a8f63af5-0df5-4ff5-aced-8fc8e0000df9 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": null, "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": null, "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:43 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:44 GMT Content-Type: - application/json Content-Length: - '1127' Connection: - keep-alive X-Compute-Request-Id: - req-156178d1-f146-4bbd-aab8-458b99e6472f X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:44 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:46 GMT Content-Type: - application/json Content-Length: - '1127' Connection: - keep-alive X-Compute-Request-Id: - req-ab485472-7d1c-4e3a-94e8-49ed6fbcfca3 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:46 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:50 GMT Content-Type: - application/json Content-Length: - '1127' Connection: - keep-alive X-Compute-Request-Id: - req-e5652168-1583-4bdb-b24b-e61d858b459f X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:50 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:52:58 GMT Content-Type: - application/json Content-Length: - '1127' Connection: - keep-alive X-Compute-Request-Id: - req-62dd5070-e281-4e62-9706-3f1c40c4d6fc X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "creating", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:52:58 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:14 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-719aabd3-4c29-4ab6-9810-6a119e64f312 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "available", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:14 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"extend":{"new_size":2}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:14 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Mon, 10 Oct 2016 12:53:14 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:15 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-7f348e4e-0314-4e78-a1cf-6220425828c2 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "extending", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:15 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:16 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-6b2e0b2e-aaff-453b-b2ce-5c2ba172c05c X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "extending", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:16 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:18 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-5da34bf8-816b-4a2e-b394-4a647832eb44 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 2, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "available", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:18 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"shrink":{"new_size":1}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:18 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Mon, 10 Oct 2016 12:53:18 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:18 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-076aa122-46c4-4f5d-8042-ef481d9f5076 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 2, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "shrinking", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:18 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:19 GMT Content-Type: - application/json Content-Length: - '1128' Connection: - keep-alive X-Compute-Request-Id: - req-09e06286-4a56-448d-95ca-5e1d44e0787b X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "available", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:19 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:19 GMT Content-Type: - application/json Content-Length: - '19' Connection: - keep-alive X-Compute-Request-Id: - req-46b5592a-0063-40ff-af26-de186c0d5e0a X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": []}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:19 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"allow_access":{"access_to":"10.0.0.2","access_type":"ip","access_level":"ro"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:20 GMT Content-Type: - application/json Content-Length: - '194' Connection: - keep-alive X-Compute-Request-Id: - req-ac68accd-8959-490f-86ec-ad6433cd900f X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access": {"share_id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "access_type": "ip", "access_to": "10.0.0.2", "access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3"}}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:20 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:20 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-e47da773-23dd-4d14-9a26-14e8e6fc134c X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:20 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:20 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-5d88c059-2625-40e8-b97a-eec9bd5807e4 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:20 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:21 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-47ff39f3-8f1f-4cb1-a2cb-700af03ecd84 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:21 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:23 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-119959f0-2efb-46dd-a10d-a18b66e3b182 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:23 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:27 GMT Content-Type: - application/json Content-Length: - '152' Connection: - keep-alive X-Compute-Request-Id: - req-31d0a060-5719-4218-b30f-14b3f62b62d6 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "active", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:27 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"deny_access":{"access_id":"21bda5b5-9fce-4f5a-8e8e-875b82837cd3"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:28 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Mon, 10 Oct 2016 12:53:28 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:28 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-c201b17b-0d5f-49f9-9831-99860fe0ef95 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:28 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:29 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-c3f729f8-ee7e-4d88-bada-c18662b20b20 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:29 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:31 GMT Content-Type: - application/json Content-Length: - '149' Connection: - keep-alive X-Compute-Request-Id: - req-d9bdb204-b772-441a-a1b7-ee85a01c1366 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": [{"access_level": "ro", "state": "new", "id": "21bda5b5-9fce-4f5a-8e8e-875b82837cd3", "access_type": "ip", "access_to": "10.0.0.2"}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:31 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38/action body: encoding: UTF-8 string: '{"access_list":null}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:35 GMT Content-Type: - application/json Content-Length: - '19' Connection: - keep-alive X-Compute-Request-Id: - req-34e712f5-e1cf-4d7c-bafd-c5f476d728e1 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"access_list": []}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:35 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:35 GMT Content-Type: - application/json Content-Length: - '1131' Connection: - keep-alive X-Compute-Request-Id: - req-9113a039-0f62-463b-84e0-42fb4a6ccc8f X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "available", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:35 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:36 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Mon, 10 Oct 2016 12:53:36 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:36 GMT Content-Type: - application/json Content-Length: - '1130' Connection: - keep-alive X-Compute-Request-Id: - req-a637c8b8-5605-49b6-9cd5-07858faa2389 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "deleting", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:36 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:37 GMT Content-Type: - application/json Content-Length: - '1130' Connection: - keep-alive X-Compute-Request-Id: - req-378f638f-f2f9-4bbd-9a1d-1669e62a03fa X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "deleting", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:37 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:39 GMT Content-Type: - application/json Content-Length: - '1130' Connection: - keep-alive X-Compute-Request-Id: - req-259e194c-6ec6-4f93-9955-3285d41a0b4b X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "deleting", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:39 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:43 GMT Content-Type: - application/json Content-Length: - '1130' Connection: - keep-alive X-Compute-Request-Id: - req-1f9ea360-843d-4df7-b452-4dd0263d0f79 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"share_type_name": "default", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/828bc627-470d-4a39-b1a0-6ac30aa3bf38", "rel": "bookmark"}], "availability_zone": "nova", "share_network_id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "share_server_id": "80c03eae-1db0-4e07-9276-28bd3a9f12b4", "snapshot_id": null, "id": "828bc627-470d-4a39-b1a0-6ac30aa3bf38", "size": 1, "share_type": "d9ff1321-fe9c-467c-90ea-75cb98b9a3ac", "consistency_group_id": null, "project_id": "c60a441e54cd435896a357026aa4050a", "metadata": {}, "status": "deleting", "description": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "access_rules_status": "active", "is_public": false, "task_state": null, "snapshot_support": true, "name": "fog_share_action", "has_replicas": false, "replication_type": null, "created_at": "2016-10-10T12:52:42.821767", "share_proto": "NFS", "volume_type": "default", "source_cgsnapshot_member_id": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:43 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share_action body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:52 GMT Content-Type: - application/json Content-Length: - '14' Connection: - keep-alive X-Compute-Request-Id: - req-80615411-a606-4697-bc47-c1026700487e X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": []}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:52 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_action_net body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:52 GMT Content-Type: - application/json Content-Length: - '488' Connection: - keep-alive X-Compute-Request-Id: - req-32d64260-5df3-4855-94cc-46c75f1d1cc0 X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": [{"name": "fog_share_action_net", "segmentation_id": 2277, "created_at": "2016-10-10T12:52:42.619747", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-10-10T12:52:46.731378", "network_type": "vlan", "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": 4, "nova_net_id": null, "cidr": "10.0.0.0/16", "project_id": "c60a441e54cd435896a357026aa4050a", "id": "55f0403a-bfaf-4be3-b9bd-d86e3e453a3a", "description": null}]}' http_version: recorded_at: Mon, 10 Oct 2016 12:53:52 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/55f0403a-bfaf-4be3-b9bd-d86e3e453a3a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 X-Openstack-Manila-Api-Version: - '2.15' response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Mon, 10 Oct 2016 12:53:52 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.15' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Mon, 10 Oct 2016 12:53:52 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/share_crud.yml000066400000000000000000000512231476630434000275750ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/networks body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:18 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2322' Connection: - keep-alive X-Openstack-Request-Id: - req-fd2a1c4f-ea16-4eec-a2a3-9ff9282d6b33 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"networks": [{"status": "ACTIVE", "subnets": ["f8215b4c-b788-4c56-bfc9-11dce4f88d37"], "availability_zone_hints": [], "availability_zones": ["nova"], "name": "private", "admin_state_up": true, "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "tags": [], "updated_at": "2016-09-08T13:28:54", "ipv6_address_scope": null, "router:external": false, "ipv4_address_scope": null, "shared": false, "mtu": 1450, "id": "169636be-3aa3-4b23-8e48-96a81198085f", "description": ""}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:18 GMT - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/subnets body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:19 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1719' Connection: - keep-alive X-Openstack-Request-Id: - req-fbf55993-2229-4903-bd2d-656b3159dd05 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"subnets": [{"description": "", "enable_dhcp": true, "network_id": "169636be-3aa3-4b23-8e48-96a81198085f", "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "dns_nameservers": [], "updated_at": "2016-09-08T13:28:54", "gateway_ip": "10.10.42.1", "ipv6_ra_mode": null, "allocation_pools": [{"start": "10.10.42.2", "end": "10.10.42.14"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "10.10.42.0/28", "id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "subnetpool_id": null, "name": "private_sub"}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:19 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks body: encoding: UTF-8 string: '{"share_network":{"name":"fog_share_net","neutron_net_id":"169636be-3aa3-4b23-8e48-96a81198085f","neutron_subnet_id":"f8215b4c-b788-4c56-bfc9-11dce4f88d37"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:21 GMT Content-Type: - application/json Content-Length: - '446' Connection: - keep-alive X-Compute-Request-Id: - req-812a30d3-bebb-4cfc-b08e-eef581af6d88 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_net", "segmentation_id": null, "created_at": "2016-09-30T13:20:21.976094", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": null, "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "9e705573-132f-4117-9158-5db7389975b0", "description": null}}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:21 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares body: encoding: UTF-8 string: '{"share":{"share_proto":"NFS","size":1,"name":"fog_share","description":"used by fog","share_network_id":"9e705573-132f-4117-9158-5db7389975b0"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:22 GMT Content-Type: - application/json Content-Length: - '824' Connection: - keep-alive X-Compute-Request-Id: - req-89001acf-9d23-4ef2-abd2-0fd8f316e427 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:22 GMT - request: method: put uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df body: encoding: UTF-8 string: '{"share":{"display_description":"still used by fog"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:22 GMT Content-Type: - application/json Content-Length: - '827' Connection: - keep-alive X-Compute-Request-Id: - req-62797fc9-1f78-4300-b499-4ede4d61b04b X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "error", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "still used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:22 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:22 GMT Content-Type: - application/json Content-Length: - '827' Connection: - keep-alive X-Compute-Request-Id: - req-8c4d78c2-b14b-4e59-8710-28491c11eb56 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "error", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "still used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:22 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:22 GMT Content-Type: - application/json Content-Length: - '827' Connection: - keep-alive X-Compute-Request-Id: - req-7a638258-f042-49b2-98d2-9d51cc4c1ac6 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "error", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "still used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:22 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:22 GMT Content-Type: - application/json Content-Length: - '830' Connection: - keep-alive X-Compute-Request-Id: - req-fe0da670-2f9e-4819-91b8-041859acf455 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "error", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "still used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:22 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:23 GMT Content-Type: - application/json Content-Length: - '830' Connection: - keep-alive X-Compute-Request-Id: - req-c4b3a425-c63a-475d-a615-fa23748766b2 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "error", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": null, "availability_zone": null, "created_at": "2016-09-30T13:20:22.225743", "description": "still used by fog", "export_locations": [], "share_proto": "NFS", "share_network_id": "9e705573-132f-4117-9158-5db7389975b0", "metadata": {}, "share_server_id": null, "host": "", "volume_type": null, "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "0982d23b-ea7a-43a3-95f8-e9cceb4b28df", "size": 1}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:23 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/0982d23b-ea7a-43a3-95f8-e9cceb4b28df body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:23 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Fri, 30 Sep 2016 13:20:23 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:23 GMT Content-Type: - application/json Content-Length: - '14' Connection: - keep-alive X-Compute-Request-Id: - req-870449c7-978c-4341-8048-9dc77dd962a7 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": []}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:23 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_net body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:23 GMT Content-Type: - application/json Content-Length: - '449' Connection: - keep-alive X-Compute-Request-Id: - req-12ae5c4b-77b8-4a38-bbca-1bff994e6415 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": [{"name": "fog_share_net", "segmentation_id": null, "created_at": "2016-09-30T13:20:21.976094", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": null, "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "9e705573-132f-4117-9158-5db7389975b0", "description": null}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:20:23 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/9e705573-132f-4117-9158-5db7389975b0 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:20:23 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Fri, 30 Sep 2016 13:20:23 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/share_net_crud.yml000066400000000000000000000347541476630434000304550ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/networks body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2322' Connection: - keep-alive X-Openstack-Request-Id: - req-62354be9-790c-4939-9983-18ba531123de Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"networks": [{"status": "ACTIVE", "subnets": ["f8215b4c-b788-4c56-bfc9-11dce4f88d37"], "availability_zone_hints": [], "availability_zones": ["nova"], "name": "private", "admin_state_up": true, "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "tags": [], "updated_at": "2016-09-08T13:28:54", "ipv6_address_scope": null, "router:external": false, "ipv4_address_scope": null, "shared": false, "mtu": 1450, "id": "169636be-3aa3-4b23-8e48-96a81198085f", "description": ""}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/subnets body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1719' Connection: - keep-alive X-Openstack-Request-Id: - req-f61895bb-89a6-4219-a4c1-4ccb264ae949 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"subnets": [{"description": "", "enable_dhcp": true, "network_id": "169636be-3aa3-4b23-8e48-96a81198085f", "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "dns_nameservers": [], "updated_at": "2016-09-08T13:28:54", "gateway_ip": "10.10.42.1", "ipv6_ra_mode": null, "allocation_pools": [{"start": "10.10.42.2", "end": "10.10.42.14"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "10.10.42.0/28", "id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "subnetpool_id": null, "name": "private_sub"}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks body: encoding: UTF-8 string: '{"share_network":{"name":"fog_share_network","description":"used by fog","neutron_net_id":"169636be-3aa3-4b23-8e48-96a81198085f","neutron_subnet_id":"f8215b4c-b788-4c56-bfc9-11dce4f88d37"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json Content-Length: - '459' Connection: - keep-alive X-Compute-Request-Id: - req-0d1937e9-8edb-47d4-87b0-979dfb666e8d X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": null, "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "used by fog"}}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: put uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/5e611413-0b17-46d3-b864-8389de85ddfb body: encoding: UTF-8 string: '{"share_network":{"description":"still used by fog"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json Content-Length: - '489' Connection: - keep-alive X-Compute-Request-Id: - req-58413763-ca37-4aa6-9abd-be0e509d8dba X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-09-30T13:09:47.687384", "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "still used by fog"}}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/5e611413-0b17-46d3-b864-8389de85ddfb body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json Content-Length: - '489' Connection: - keep-alive X-Compute-Request-Id: - req-8bca66a0-d842-4bf3-84f7-6c11412a771c X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-09-30T13:09:47.687384", "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "still used by fog"}}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/5e611413-0b17-46d3-b864-8389de85ddfb body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:47 GMT Content-Type: - application/json Content-Length: - '489' Connection: - keep-alive X-Compute-Request-Id: - req-760de107-31b4-4e71-a653-ca599c1e7c49 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-09-30T13:09:47.687384", "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "still used by fog"}}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:47 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_network body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:48 GMT Content-Type: - application/json Content-Length: - '492' Connection: - keep-alive X-Compute-Request-Id: - req-6916b57c-8caf-40cf-92ca-b963d309138f X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": [{"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-09-30T13:09:47.687384", "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "still used by fog"}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:48 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_network body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:48 GMT Content-Type: - application/json Content-Length: - '492' Connection: - keep-alive X-Compute-Request-Id: - req-80d882f0-6d0d-4370-848e-ea862eb6eede X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": [{"name": "fog_share_network", "segmentation_id": null, "created_at": "2016-09-30T13:09:47.487404", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-09-30T13:09:47.687384", "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "5e611413-0b17-46d3-b864-8389de85ddfb", "description": "still used by fog"}]}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:48 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/5e611413-0b17-46d3-b864-8389de85ddfb body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:48 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Fri, 30 Sep 2016 13:09:48 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_network body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Fri, 30 Sep 2016 13:09:48 GMT Content-Type: - application/json Content-Length: - '22' Connection: - keep-alive X-Compute-Request-Id: - req-c57172c4-edd0-4fe1-afa9-77b2ca1f60d0 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": []}' http_version: recorded_at: Fri, 30 Sep 2016 13:09:48 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/shared_file_system/share_snap_crud.yml000066400000000000000000001506541476630434000306260ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/networks body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:10 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '2322' Connection: - keep-alive X-Openstack-Request-Id: - req-b70dfde3-ed50-434f-8063-7a967ca5c838 Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"networks": [{"status": "ACTIVE", "subnets": ["f8215b4c-b788-4c56-bfc9-11dce4f88d37"], "availability_zone_hints": [], "availability_zones": ["nova"], "name": "private", "admin_state_up": true, "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "tags": [], "updated_at": "2016-09-08T13:28:54", "ipv6_address_scope": null, "router:external": false, "ipv4_address_scope": null, "shared": false, "mtu": 1450, "id": "169636be-3aa3-4b23-8e48-96a81198085f", "description": ""}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:12 GMT - request: method: get uri: https://devstack.openstack.stack:9696/v2.0/subnets body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:10 GMT Content-Type: - application/json; charset=UTF-8 Content-Length: - '1719' Connection: - keep-alive X-Openstack-Request-Id: - req-81284898-d772-4592-912c-8558a20521ea Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"subnets": [{"description": "", "enable_dhcp": true, "network_id": "169636be-3aa3-4b23-8e48-96a81198085f", "tenant_id": "c60a441e54cd435896a357026aa4050a", "created_at": "2016-09-08T13:28:54", "dns_nameservers": [], "updated_at": "2016-09-08T13:28:54", "gateway_ip": "10.10.42.1", "ipv6_ra_mode": null, "allocation_pools": [{"start": "10.10.42.2", "end": "10.10.42.14"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "10.10.42.0/28", "id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "subnetpool_id": null, "name": "private_sub"}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:12 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks body: encoding: UTF-8 string: '{"share_network":{"name":"fog_share_net","neutron_net_id":"169636be-3aa3-4b23-8e48-96a81198085f","neutron_subnet_id":"f8215b4c-b788-4c56-bfc9-11dce4f88d37"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:11 GMT Content-Type: - application/json Content-Length: - '446' Connection: - keep-alive X-Compute-Request-Id: - req-57f2a382-13aa-42c3-b0da-58432597c0c6 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_network": {"name": "fog_share_net", "segmentation_id": null, "created_at": "2016-10-05T07:27:10.969175", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": null, "network_type": null, "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": null, "nova_net_id": null, "cidr": null, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "description": null}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:12 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares body: encoding: UTF-8 string: '{"share":{"share_proto":"NFS","size":1,"name":"fog_share","share_network_id":"008f76ad-d8bc-46dc-8ab6-9c364ec6622b"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:11 GMT Content-Type: - application/json Content-Length: - '847' Connection: - keep-alive X-Compute-Request-Id: - req-7a2f3b6f-b214-4204-a802-49053b7d4466 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": null, "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": null, "host": "", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:13 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:11 GMT Content-Type: - application/json Content-Length: - '901' Connection: - keep-alive X-Compute-Request-Id: - req-7824b3e5-5c91-42dd-a948-3cfdc48f6fd6 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": null, "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": null, "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:13 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:12 GMT Content-Type: - application/json Content-Length: - '937' Connection: - keep-alive X-Compute-Request-Id: - req-a2e2bb73-ab2a-4818-8e12-7ec9e042fc8a X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:14 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:14 GMT Content-Type: - application/json Content-Length: - '937' Connection: - keep-alive X-Compute-Request-Id: - req-8c33844d-0f1f-4bda-bfce-22f18cec04ac X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:16 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:18 GMT Content-Type: - application/json Content-Length: - '937' Connection: - keep-alive X-Compute-Request-Id: - req-851668bf-881d-4291-bdb0-b650e83b0e92 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:20 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:27 GMT Content-Type: - application/json Content-Length: - '937' Connection: - keep-alive X-Compute-Request-Id: - req-ac05c5b2-c960-47ba-bbd7-51858a25a78f X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "creating", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": null, "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:28 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:43 GMT Content-Type: - application/json Content-Length: - '1104' Connection: - keep-alive X-Compute-Request-Id: - req-cb0ee03b-178a-40c5-9d8e-a65ece9bda72 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share": {"status": "available", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": ["10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "10.0.9.176:/share_793c890e_4597_4927_95ea_c53bdf67a8b7"], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:44 GMT - request: method: post uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots body: encoding: UTF-8 string: '{"snapshot":{"share_id":"271133e2-c2ad-4268-9792-6798c6d03f61","name":"fog_snap"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:43 GMT Content-Type: - application/json Content-Length: - '571' Connection: - keep-alive X-Compute-Request-Id: - req-30d1703c-2910-4650-b25f-598c8eb4d3c1 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:45 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:43 GMT Content-Type: - application/json Content-Length: - '571' Connection: - keep-alive X-Compute-Request-Id: - req-6cff8008-c9fa-4f43-afb4-20524c695877 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:45 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:44 GMT Content-Type: - application/json Content-Length: - '572' Connection: - keep-alive X-Compute-Request-Id: - req-9c35f9bb-e673-45bb-9a16-e108675ba428 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:46 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:44 GMT Content-Type: - application/json Content-Length: - '572' Connection: - keep-alive X-Compute-Request-Id: - req-25238b18-f115-4966-8d65-297ebb09c00e X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:46 GMT - request: method: put uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: UTF-8 string: '{"snapshot":{"display_name":"fog_snap_updated"}}' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:44 GMT Content-Type: - application/json Content-Length: - '580' Connection: - keep-alive X-Compute-Request-Id: - req-e2a9ac4e-1c0c-4524-a499-7c6225d3199d X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:46 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:45 GMT Content-Type: - application/json Content-Length: - '580' Connection: - keep-alive X-Compute-Request-Id: - req-2dad0cee-e65a-4e8f-82f5-8c11c93b7204 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:46 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/detail?name=fog_snap_updated body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:45 GMT Content-Type: - application/json Content-Length: - '583' Connection: - keep-alive X-Compute-Request-Id: - req-4005c028-33f3-4695-899b-88425370a759 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshots": [{"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:46 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/detail?name=fog_snap_updated body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:45 GMT Content-Type: - application/json Content-Length: - '583' Connection: - keep-alive X-Compute-Request-Id: - req-2f68a766-28dc-4fd7-b736-e827da0825a7 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshots": [{"status": "available", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:47 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:46 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 05 Oct 2016 07:27:48 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/detail?name=fog_snap_updated body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:47 GMT Content-Type: - application/json Content-Length: - '582' Connection: - keep-alive X-Compute-Request-Id: - req-2b26eacf-1ab5-40b5-9050-d7f0a2e6bd58 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshots": [{"status": "deleting", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:48 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/detail?name=fog_snap_updated body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:47 GMT Content-Type: - application/json Content-Length: - '582' Connection: - keep-alive X-Compute-Request-Id: - req-ad847563-a62b-453d-b903-f094d2958379 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshots": [{"status": "deleting", "size": 1, "share_id": "271133e2-c2ad-4268-9792-6798c6d03f61", "name": "fog_snap_updated", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/snapshots/3718b110-4d33-4942-807d-9804981050cc", "rel": "bookmark"}], "share_proto": "NFS", "created_at": "2016-10-05T07:27:43.374871", "description": null, "id": "3718b110-4d33-4942-807d-9804981050cc", "share_size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:49 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/snapshots/detail?name=fog_snap_updated body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:48 GMT Content-Type: - application/json Content-Length: - '17' Connection: - keep-alive X-Compute-Request-Id: - req-cc6fc2b3-321d-4795-8dfe-ac1f319b5c54 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:50 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:48 GMT Content-Type: - application/json Content-Length: - '1107' Connection: - keep-alive X-Compute-Request-Id: - req-b1f5c817-87da-45a6-9c25-a461237a4d4c X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "available", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": ["10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "10.0.9.176:/share_793c890e_4597_4927_95ea_c53bdf67a8b7"], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:50 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:48 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 05 Oct 2016 07:27:50 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:48 GMT Content-Type: - application/json Content-Length: - '992' Connection: - keep-alive X-Compute-Request-Id: - req-f112174d-8ae1-4512-a526-2d23e29b3300 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "deleting", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:50 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:50 GMT Content-Type: - application/json Content-Length: - '992' Connection: - keep-alive X-Compute-Request-Id: - req-65848d84-9d91-4cb4-a8b2-c6451c83d1da X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "deleting", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:51 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:52 GMT Content-Type: - application/json Content-Length: - '992' Connection: - keep-alive X-Compute-Request-Id: - req-87e796b7-0438-49e2-9b24-3be024dd5f68 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "deleting", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:53 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:27:56 GMT Content-Type: - application/json Content-Length: - '992' Connection: - keep-alive X-Compute-Request-Id: - req-177f817a-3bb8-478e-b069-af2d1f641a75 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": [{"status": "deleting", "links": [{"href": "https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "self"}, {"href": "https://devstack.openstack.stack:8786/c60a441e54cd435896a357026aa4050a/shares/271133e2-c2ad-4268-9792-6798c6d03f61", "rel": "bookmark"}], "export_location": "10.0.9.175:/share_793c890e_4597_4927_95ea_c53bdf67a8b7", "name": "fog_share", "share_type": "default_share_type", "availability_zone": "nova", "created_at": "2016-10-05T07:27:11.178081", "description": null, "export_locations": [], "share_proto": "NFS", "share_network_id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "metadata": {}, "share_server_id": "196115c8-45d7-4cc1-b531-0cf7971def71", "host": "manila-share-netapp-bb98@netapp-multi#aggr_sas01_30010", "volume_type": "default_share_type", "snapshot_id": null, "is_public": false, "project_id": "c60a441e54cd435896a357026aa4050a", "id": "271133e2-c2ad-4268-9792-6798c6d03f61", "size": 1}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:27:58 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/shares/detail?name=fog_share body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:28:04 GMT Content-Type: - application/json Content-Length: - '14' Connection: - keep-alive X-Compute-Request-Id: - req-e6ff78a2-80a5-4c9d-8895-4878c101c0e7 X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"shares": []}' http_version: recorded_at: Wed, 05 Oct 2016 07:28:06 GMT - request: method: get uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/detail?name=fog_share_net body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 200 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:28:04 GMT Content-Type: - application/json Content-Length: - '481' Connection: - keep-alive X-Compute-Request-Id: - req-55673418-d738-4949-8f07-f809026c9bed X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '{"share_networks": [{"name": "fog_share_net", "segmentation_id": 2277, "created_at": "2016-10-05T07:27:10.969175", "neutron_subnet_id": "f8215b4c-b788-4c56-bfc9-11dce4f88d37", "updated_at": "2016-10-05T07:27:14.597082", "network_type": "vlan", "neutron_net_id": "169636be-3aa3-4b23-8e48-96a81198085f", "ip_version": 4, "nova_net_id": null, "cidr": "10.0.0.0/16", "project_id": "c60a441e54cd435896a357026aa4050a", "id": "008f76ad-d8bc-46dc-8ab6-9c364ec6622b", "description": null}]}' http_version: recorded_at: Wed, 05 Oct 2016 07:28:06 GMT - request: method: delete uri: https://devstack.openstack.stack:8786/v2/c60a441e54cd435896a357026aa4050a/share-networks/008f76ad-d8bc-46dc-8ab6-9c364ec6622b body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.40.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 833aba07925148f9bac2bc047e858727 response: status: code: 202 message: '' headers: Server: - nginx/1.11.3 Date: - Wed, 05 Oct 2016 07:28:04 GMT Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' Connection: - keep-alive X-Openstack-Manila-Api-Version: - '2.0' Vary: - X-OpenStack-Manila-API-Version Strict-Transport-Security: - max-age=15724800; includeSubDomains; preload body: encoding: UTF-8 string: '' http_version: recorded_at: Wed, 05 Oct 2016 07:28:06 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/000077500000000000000000000000001476630434000223665ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/volume/common_setup.yml000066400000000000000000000451021476630434000256230ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:15:26 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 461b35783e19438ea1d032f9c880acaa Vary: - X-Auth-Token X-Openstack-Request-Id: - req-09030b88-07d4-4310-a04d-467df683bc70 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T15:15:26.798576Z", "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["Q83qG8BnQoqBQOASiAEeOg"], "issued_at": "2016-05-03T14:15:26.798646Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:26 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 461b35783e19438ea1d032f9c880acaa response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 14:15:27 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-283d99cc-c5a8-417b-b033-98d4fcefba60 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:27 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"461b35783e19438ea1d032f9c880acaa"}},"scope":{"project":{"id":"2ab82e30d7984631874def67813dffd8"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:15:27 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 96082e8bba9d418b8ce232496fa059ab Vary: - X-Auth-Token X-Openstack-Request-Id: - req-ca8e749c-d876-42f6-9a23-437d2a873356 Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T15:15:26.798576Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["Jfdc6MavRUqhPNKeduIlIQ", "Q83qG8BnQoqBQOASiAEeOg"], "issued_at": "2016-05-03T14:15:27.329140Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:27 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_crud.yml000066400000000000000000001126501476630434000254420ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5f4966cb-85eb-41b5-8326-26cfd7086caa Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-5f4966cb-85eb-41b5-8326-26cfd7086caa Date: - Tue, 03 May 2016 14:15:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:15:27 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":"This is the volume description.","size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-86222ebe-b369-414a-8e58-19c54e81ce17 Content-Type: - application/json Content-Length: - '829' X-Openstack-Request-Id: - req-86222ebe-b369-414a-8e58-19c54e81ce17 Date: - Tue, 03 May 2016 14:15:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:15:27.919248", "description": "This is the volume description.", "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:15:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e50a08aa-74cb-44b4-a8e8-00fa3a586f73 Content-Type: - application/json Content-Length: - '1135' X-Openstack-Request-Id: - req-e50a08aa-74cb-44b4-a8e8-00fa3a586f73 Date: - Tue, 03 May 2016 14:15:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e8966192-efbe-4565-a301-f26bfd9124e9 Content-Type: - application/json Content-Length: - '1132' X-Openstack-Request-Id: - req-e8966192-efbe-4565-a301-f26bfd9124e9 Date: - Tue, 03 May 2016 14:15:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d9dee76f-1f20-4884-84cb-c7fb5de1123f Content-Type: - application/json Content-Length: - '1132' X-Openstack-Request-Id: - req-d9dee76f-1f20-4884-84cb-c7fb5de1123f Date: - Tue, 03 May 2016 14:15:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:29 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a6640469-f0fa-4768-af6e-24d67c0a75d1 Content-Type: - application/json Content-Length: - '1133' X-Openstack-Request-Id: - req-a6640469-f0fa-4768-af6e-24d67c0a75d1 Date: - Tue, 03 May 2016 14:15:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:30 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-be83142a-5d30-4090-8d27-3bb9b7ae8ac5 Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-be83142a-5d30-4090-8d27-3bb9b7ae8ac5 Date: - Tue, 03 May 2016 14:15:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:30 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: UTF-8 string: '{"volume":{"name":"fog-updated-testvolume-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5f59fa4a-3039-4492-8e26-735bd5624ec3 Content-Type: - application/json Content-Length: - '838' X-Openstack-Request-Id: - req-5f59fa4a-3039-4492-8e26-735bd5624ec3 Date: - Tue, 03 May 2016 14:15:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:15:27.000000", "description": "This is the volume description.", "volume_type": "lvmdriver-1", "name": "fog-updated-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:15:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-updated-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-2566fc90-fadd-495d-b2e8-3f4706502365 Content-Type: - application/json Content-Length: - '1144' X-Openstack-Request-Id: - req-2566fc90-fadd-495d-b2e8-3f4706502365 Date: - Tue, 03 May 2016 14:15:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:31 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: UTF-8 string: '{"volume":{"metadata":{},"description":"This is the updated volume description.","name":"fog-updated-testvolume-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e7092f48-6dd7-4711-93ab-56807977d4ff Content-Type: - application/json Content-Length: - '846' X-Openstack-Request-Id: - req-e7092f48-6dd7-4711-93ab-56807977d4ff Date: - Tue, 03 May 2016 14:15:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:15:27.000000", "description": "This is the updated volume description.", "volume_type": "lvmdriver-1", "name": "fog-updated-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:15:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fe4c0d48-162d-4d42-a9c1-1faf6bfd1668 Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-fe4c0d48-162d-4d42-a9c1-1faf6bfd1668 Date: - Tue, 03 May 2016 14:15:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fbc9f343-45b2-41b2-89bc-395cb4cf4f79 Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-fbc9f343-45b2-41b2-89bc-395cb4cf4f79 Date: - Tue, 03 May 2016 14:15:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-65f2d4ab-fa5b-4f1e-879f-664c9779637b Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-65f2d4ab-fa5b-4f1e-879f-664c9779637b Date: - Tue, 03 May 2016 14:15:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:33 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-e3be92be-81ec-4306-8375-bde963a03e85 Date: - Tue, 03 May 2016 14:15:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:15:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1a3a85cc-345c-45de-ad87-383a38ae0d71 Content-Type: - application/json Content-Length: - '1148' X-Openstack-Request-Id: - req-1a3a85cc-345c-45de-ad87-383a38ae0d71 Date: - Tue, 03 May 2016 14:15:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-877c1977-be60-46b1-9f94-bd5c5669dfe9 Content-Type: - application/json Content-Length: - '1148' X-Openstack-Request-Id: - req-877c1977-be60-46b1-9f94-bd5c5669dfe9 Date: - Tue, 03 May 2016 14:15:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9d6a740a-68de-40f1-ac92-db0ba5fb24fe Content-Type: - application/json Content-Length: - '1148' X-Openstack-Request-Id: - req-9d6a740a-68de-40f1-ac92-db0ba5fb24fe Date: - Tue, 03 May 2016 14:15:37 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "97b01b22-1239-4295-84bc-8ba77cb203d6", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:27.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:37 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/97b01b22-1239-4295-84bc-8ba77cb203d6 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-1a936ae3-230b-463e-a661-a9c9f19ec7a7 X-Openstack-Request-Id: - req-1a936ae3-230b-463e-a661-a9c9f19ec7a7 Date: - Tue, 03 May 2016 14:15:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 97b01b22-1239-4295-84bc-8ba77cb203d6 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:15:41 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_extend.yml000066400000000000000000000730121476630434000257720ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4a5d4cd0-6ced-4082-a21e-39c0231190cc Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-4a5d4cd0-6ced-4082-a21e-39c0231190cc Date: - Tue, 03 May 2016 14:15:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:15:42 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-cb33b1b4-6fa1-430f-80cb-bcde713ee20c Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-cb33b1b4-6fa1-430f-80cb-bcde713ee20c Date: - Tue, 03 May 2016 14:15:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:15:42.399837", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:15:42 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4ebf2e02-05d2-4ab3-b6f5-3a4993401d25 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-4ebf2e02-05d2-4ab3-b6f5-3a4993401d25 Date: - Tue, 03 May 2016 14:15:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-42f4b128-5463-4169-bee7-9e9288c93929 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-42f4b128-5463-4169-bee7-9e9288c93929 Date: - Tue, 03 May 2016 14:15:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:44 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":2}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-2717dd87-f5a1-49c2-9a12-301a163c72b4 Date: - Tue, 03 May 2016 14:15:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:15:44 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-70dcebd8-5dd8-4756-8150-fa5bbfb73bd4 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-70dcebd8-5dd8-4756-8150-fa5bbfb73bd4 Date: - Tue, 03 May 2016 14:15:45 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "extending", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:45 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-56a99d84-c6d5-4fe3-9b5f-aacc22834f7d Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-56a99d84-c6d5-4fe3-9b5f-aacc22834f7d Date: - Tue, 03 May 2016 14:15:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:46 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 400 message: '' headers: Content-Length: - '149' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-06a3270f-d962-464e-a29d-5d9d51d2e5ca X-Openstack-Request-Id: - req-06a3270f-d962-464e-a29d-5d9d51d2e5ca Date: - Tue, 03 May 2016 14:15:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid input received: New size for extend must be greater than current size. (current: 2, extended: 1).", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:15:46 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1d2b0f40-b266-4821-a3ba-f10e83f5c8a0 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-1d2b0f40-b266-4821-a3ba-f10e83f5c8a0 Date: - Tue, 03 May 2016 14:15:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3b9b4821-39ad-42dd-a595-0d332c6024e1 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-3b9b4821-39ad-42dd-a595-0d332c6024e1 Date: - Tue, 03 May 2016 14:15:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:47 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-993b6256-2f56-468e-ab65-1c1901f5f2b3 Date: - Tue, 03 May 2016 14:15:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:15:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d52b669e-ff15-4454-84c8-9e591825fdda Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-d52b669e-ff15-4454-84c8-9e591825fdda Date: - Tue, 03 May 2016 14:15:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-21693262-c6b9-42c2-b02b-04352e03ccf1 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-21693262-c6b9-42c2-b02b-04352e03ccf1 Date: - Tue, 03 May 2016 14:15:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-357f98d9-ebc7-4d2f-9a6a-1d32a6b74e21 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-357f98d9-ebc7-4d2f-9a6a-1d32a6b74e21 Date: - Tue, 03 May 2016 14:15:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "6d90a82f-a6ef-4428-b2d4-a48344fc621a", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-da537dc7-cdd2-4dfd-aac3-248c360400bb X-Openstack-Request-Id: - req-da537dc7-cdd2-4dfd-aac3-248c360400bb Date: - Tue, 03 May 2016 14:15:55 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 6d90a82f-a6ef-4428-b2d4-a48344fc621a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:15:56 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/6d90a82f-a6ef-4428-b2d4-a48344fc621a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-ae16149d-1ad0-436d-8f4b-e011095d646f X-Openstack-Request-Id: - req-ae16149d-1ad0-436d-8f4b-e011095d646f Date: - Tue, 03 May 2016 14:15:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 6d90a82f-a6ef-4428-b2d4-a48344fc621a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:15:56 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_metadata_crud.yml000066400000000000000000001055501476630434000273030ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e3cb9729-65ba-4ffb-aa30-06140ff0c804 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-e3cb9729-65ba-4ffb-aa30-06140ff0c804 Date: - Tue, 03 May 2016 14:16:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:42 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-5ecabdf7-ed66-416f-8157-0338401f2bf2 Content-Type: - application/json Content-Length: - '866' X-Openstack-Request-Id: - req-5ecabdf7-ed66-416f-8157-0338401f2bf2 Date: - Tue, 03 May 2016 14:16:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:16:42.782078", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:16:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d4c469d6-8320-42a9-965d-cdcf8dd2fdbc Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-d4c469d6-8320-42a9-965d-cdcf8dd2fdbc Date: - Tue, 03 May 2016 14:16:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-16e91c53-72d2-4fcc-a11b-cda91c252a26 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-16e91c53-72d2-4fcc-a11b-cda91c252a26 Date: - Tue, 03 May 2016 14:16:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:44 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-656d6b8f-00af-46f3-8034-027a79e613d8 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-656d6b8f-00af-46f3-8034-027a79e613d8 Date: - Tue, 03 May 2016 14:16:45 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:45 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated","new_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5507a93a-3ee2-4a50-8cd0-dbfd5fab6150 Content-Type: - application/json Content-Length: - '116' X-Openstack-Request-Id: - req-5507a93a-3ee2-4a50-8cd0-dbfd5fab6150 Date: - Tue, 03 May 2016 14:16:45 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:45 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fc586b55-db0f-482c-b0e0-798748d607a8 Content-Type: - application/json Content-Length: - '1204' X-Openstack-Request-Id: - req-fc586b55-db0f-482c-b0e0-798748d607a8 Date: - Tue, 03 May 2016 14:16:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:46 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated again","newer_metadata":"this is newer"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-066b79e5-9ee6-4284-9ee4-5396bc543e01 Content-Type: - application/json Content-Length: - '91' X-Openstack-Request-Id: - req-066b79e5-9ee6-4284-9ee4-5396bc543e01 Date: - Tue, 03 May 2016 14:16:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:46 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-17989fb1-f2ea-4f69-ad80-3d5441cc386c Content-Type: - application/json Content-Length: - '1179' X-Openstack-Request-Id: - req-17989fb1-f2ea-4f69-ad80-3d5441cc386c Date: - Tue, 03 May 2016 14:16:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:47 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e/metadata/some_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-64c10f44-fd21-4aa8-88fd-87e708b14368 Date: - Tue, 03 May 2016 14:16:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-dab4d607-4761-4527-8b27-76c69054bef9 Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-dab4d607-4761-4527-8b27-76c69054bef9 Date: - Tue, 03 May 2016 14:16:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-78d8ecb9-af94-4232-a0f2-d62695611c6f Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-78d8ecb9-af94-4232-a0f2-d62695611c6f Date: - Tue, 03 May 2016 14:16:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8de0773e-a622-432d-a2ed-a9b1940b6ae3 Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-8de0773e-a622-432d-a2ed-a9b1940b6ae3 Date: - Tue, 03 May 2016 14:16:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:48 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-e4cbc7cc-c7d2-47d8-8a67-95d9b8e9ab2f Date: - Tue, 03 May 2016 14:16:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e6bcf1d8-f7d9-424c-b3f4-550a8b25148d Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-e6bcf1d8-f7d9-424c-b3f4-550a8b25148d Date: - Tue, 03 May 2016 14:16:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-39260f90-6d06-4ebc-bc20-07d2fd93bac9 Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-39260f90-6d06-4ebc-bc20-07d2fd93bac9 Date: - Tue, 03 May 2016 14:16:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b67d5625-f20e-485f-bb65-ac09dd7e5683 Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-b67d5625-f20e-485f-bb65-ac09dd7e5683 Date: - Tue, 03 May 2016 14:16:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "660f0a6a-69a1-43e3-9334-2dcd0515e07e", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:42.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/660f0a6a-69a1-43e3-9334-2dcd0515e07e body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-a570a780-4799-4f48-9da3-751a23f5b81b X-Openstack-Request-Id: - req-a570a780-4799-4f48-9da3-751a23f5b81b Date: - Tue, 03 May 2016 14:16:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 660f0a6a-69a1-43e3-9334-2dcd0515e07e could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:56 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_snapshot_and_delete.yml000066400000000000000000001106471476630434000305140ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a708b10c-0f7d-4b8d-8d4c-374c33400091 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-a708b10c-0f7d-4b8d-8d4c-374c33400091 Date: - Tue, 03 May 2016 14:16:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:24 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-4e7b1882-e4d6-4c7f-9f85-bb0696abefdc Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-4e7b1882-e4d6-4c7f-9f85-bb0696abefdc Date: - Tue, 03 May 2016 14:16:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:16:24.875246", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:16:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-376d255b-5a04-478c-92b0-429709e49c93 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-376d255b-5a04-478c-92b0-429709e49c93 Date: - Tue, 03 May 2016 14:16:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4e318dfe-fab0-458d-8938-439064c84a79 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-4e318dfe-fab0-458d-8938-439064c84a79 Date: - Tue, 03 May 2016 14:16:26 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/detail?name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c4359d43-1017-4165-b08e-bf1d8867b806 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-c4359d43-1017-4165-b08e-bf1d8867b806 Date: - Tue, 03 May 2016 14:16:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:27 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"4462fc17-c417-4d97-a7c0-202130951d07","name":"fog-testsnapshot-1","description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-bb62b9bb-4287-47b0-83c2-78de1d911c0a Content-Type: - application/json Content-Length: - '268' X-Openstack-Request-Id: - req-bb62b9bb-4287-47b0-83c2-78de1d911c0a Date: - Tue, 03 May 2016 14:16:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "created_at": "2016-05-03T14:16:27.326665", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8edbec91-430e-4133-ac27-f03750df2552 Content-Type: - application/json Content-Length: - '400' X-Openstack-Request-Id: - req-8edbec91-430e-4133-ac27-f03750df2552 Date: - Tue, 03 May 2016 14:16:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "os-extended-snapshot-attributes:progress": "0%", "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7f68d9e0-cedd-4ab5-89b5-55c797588402 Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-7f68d9e0-cedd-4ab5-89b5-55c797588402 Date: - Tue, 03 May 2016 14:16:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:28 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: UTF-8 string: '{"snapshot":{"description":"Updated description"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-29a413de-3e93-45e3-903e-dda164c889e9 Content-Type: - application/json Content-Length: - '275' X-Openstack-Request-Id: - req-29a413de-3e93-45e3-903e-dda164c889e9 Date: - Tue, 03 May 2016 14:16:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3d347cf0-a2f7-45e7-858a-db902cdd560b Content-Type: - application/json Content-Length: - '409' X-Openstack-Request-Id: - req-3d347cf0-a2f7-45e7-858a-db902cdd560b Date: - Tue, 03 May 2016 14:16:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:29 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-015673e9-5314-4afc-a209-5580d7b3f54b Date: - Tue, 03 May 2016 14:16:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:29 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5f3bd561-8ae6-4e2e-9608-36aadaa0aeb4 Content-Type: - application/json Content-Length: - '408' X-Openstack-Request-Id: - req-5f3bd561-8ae6-4e2e-9608-36aadaa0aeb4 Date: - Tue, 03 May 2016 14:16:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:29 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-caa765d2-b1e7-48ea-9a95-9e5c0c9a5e43 Content-Type: - application/json Content-Length: - '408' X-Openstack-Request-Id: - req-caa765d2-b1e7-48ea-9a95-9e5c0c9a5e43 Date: - Tue, 03 May 2016 14:16:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "4462fc17-c417-4d97-a7c0-202130951d07", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:27.000000", "size": 1, "id": "4f984b4f-92d2-418d-8eed-b0896fe12336", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:30 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-cceb8bce-916b-45c8-8302-afe15423a29d X-Openstack-Request-Id: - req-cceb8bce-916b-45c8-8302-afe15423a29d Date: - Tue, 03 May 2016 14:16:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot 4f984b4f-92d2-418d-8eed-b0896fe12336 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:32 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/4f984b4f-92d2-418d-8eed-b0896fe12336 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-2ed6feed-d5a8-4de5-b195-8e3ec603ae43 X-Openstack-Request-Id: - req-2ed6feed-d5a8-4de5-b195-8e3ec603ae43 Date: - Tue, 03 May 2016 14:16:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot 4f984b4f-92d2-418d-8eed-b0896fe12336 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9efbb4aa-2173-44d4-a743-a747b72cc69c Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-9efbb4aa-2173-44d4-a743-a747b72cc69c Date: - Tue, 03 May 2016 14:16:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b01b1910-f5af-4837-96d1-b8daad9c3cd7 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-b01b1910-f5af-4837-96d1-b8daad9c3cd7 Date: - Tue, 03 May 2016 14:16:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:33 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-608b8399-b786-4559-82f0-85a639c1b532 Date: - Tue, 03 May 2016 14:16:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-540510da-1c39-4a1d-aee3-af2ff4ae6c2a Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-540510da-1c39-4a1d-aee3-af2ff4ae6c2a Date: - Tue, 03 May 2016 14:16:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-61e32ce6-fdb9-46e9-a40a-1a5ddb8b98b6 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-61e32ce6-fdb9-46e9-a40a-1a5ddb8b98b6 Date: - Tue, 03 May 2016 14:16:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-735a1326-704f-4146-9b10-e5bd7fc1665c Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-735a1326-704f-4146-9b10-e5bd7fc1665c Date: - Tue, 03 May 2016 14:16:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "4462fc17-c417-4d97-a7c0-202130951d07", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:24.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:38 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/4462fc17-c417-4d97-a7c0-202130951d07 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-ae9dc45f-9366-42c5-ab50-279fcf1993d0 X-Openstack-Request-Id: - req-ae9dc45f-9366-42c5-ab50-279fcf1993d0 Date: - Tue, 03 May 2016 14:16:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 4462fc17-c417-4d97-a7c0-202130951d07 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:42 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_snapshot_metadata_crud.yml000066400000000000000000001244151476630434000312230ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5025a361-204f-49b5-9e1d-933ba755a3b4 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-5025a361-204f-49b5-9e1d-933ba755a3b4 Date: - Tue, 03 May 2016 14:16:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:57 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-949eafdb-a76f-4d12-9931-a58db80e1637 Content-Type: - application/json Content-Length: - '866' X-Openstack-Request-Id: - req-949eafdb-a76f-4d12-9931-a58db80e1637 Date: - Tue, 03 May 2016 14:16:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:16:57.340289", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:16:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-72c45e6e-25e7-4db7-86b1-a44a3832ffc0 Content-Type: - application/json Content-Length: - '1135' X-Openstack-Request-Id: - req-72c45e6e-25e7-4db7-86b1-a44a3832ffc0 Date: - Tue, 03 May 2016 14:16:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": null, "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4117d790-6c0b-4d85-ab4c-fcf735fb89c4 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-4117d790-6c0b-4d85-ab4c-fcf735fb89c4 Date: - Tue, 03 May 2016 14:16:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/detail?name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-abf845e8-9cb9-47a7-8bec-f0873b343c4e Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-abf845e8-9cb9-47a7-8bec-f0873b343c4e Date: - Tue, 03 May 2016 14:16:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:59 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"8cb6d197-ac1c-4123-80a6-07ab053f1897","name":"fog-testsnapshot-1","description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-b7c1aca4-afe2-4044-b7f8-d5cfe96d33a4 Content-Type: - application/json Content-Length: - '268' X-Openstack-Request-Id: - req-b7c1aca4-afe2-4044-b7f8-d5cfe96d33a4 Date: - Tue, 03 May 2016 14:16:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "created_at": "2016-05-03T14:16:59.553375", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0cbf1724-20ce-4aa9-a209-7aac45ca920d Content-Type: - application/json Content-Length: - '400' X-Openstack-Request-Id: - req-0cbf1724-20ce-4aa9-a209-7aac45ca920d Date: - Tue, 03 May 2016 14:16:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "os-extended-snapshot-attributes:progress": "0%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-294b97ca-580f-4dc8-b35a-2559654cc2ac Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-294b97ca-580f-4dc8-b35a-2559654cc2ac Date: - Tue, 03 May 2016 14:17:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:00 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-37112b8a-6a98-4e5b-85eb-eb3e8d3686a9 Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-37112b8a-6a98-4e5b-85eb-eb3e8d3686a9 Date: - Tue, 03 May 2016 14:17:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:01 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c/metadata body: encoding: UTF-8 string: '{"metadata":{"some_snapshot_metadata":"this is data","new_snapshot_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d5b3104e-f5ca-48ff-b578-16ea82e67a8a Content-Type: - application/json Content-Length: - '96' X-Openstack-Request-Id: - req-d5b3104e-f5ca-48ff-b578-16ea82e67a8a Date: - Tue, 03 May 2016 14:17:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-473c9cae-807d-4473-8890-cc59fbd954f3 Content-Type: - application/json Content-Length: - '483' X-Openstack-Request-Id: - req-473c9cae-807d-4473-8890-cc59fbd954f3 Date: - Tue, 03 May 2016 14:17:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:01 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c/metadata/some_snapshot_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-f1e3621a-b4ad-470c-9a47-4004cf1b2dc3 Date: - Tue, 03 May 2016 14:17:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:17:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5f6386fd-5779-4c0c-a458-2ff123e079b8 Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-5f6386fd-5779-4c0c-a458-2ff123e079b8 Date: - Tue, 03 May 2016 14:17:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-714bed3b-3ef7-492a-8a6b-fb458ad5bb3d Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-714bed3b-3ef7-492a-8a6b-fb458ad5bb3d Date: - Tue, 03 May 2016 14:17:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9fa86ec2-0bdc-4f1f-aed5-f658ea128ed4 Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-9fa86ec2-0bdc-4f1f-aed5-f658ea128ed4 Date: - Tue, 03 May 2016 14:17:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:02 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b8ef351d-0618-4e66-a3b2-39ad0b6f6e45 Date: - Tue, 03 May 2016 14:17:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:17:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-cf0804c5-18b9-4d1d-b154-e3b3019c2b70 Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-cf0804c5-18b9-4d1d-b154-e3b3019c2b70 Date: - Tue, 03 May 2016 14:17:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f4aaec31-4c6f-434c-a897-fd887b43c2b1 Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-f4aaec31-4c6f-434c-a897-fd887b43c2b1 Date: - Tue, 03 May 2016 14:17:03 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:03 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3d3ceed3-fe7e-48cc-a9a9-fb2bfe6f1670 Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-3d3ceed3-fe7e-48cc-a9a9-fb2bfe6f1670 Date: - Tue, 03 May 2016 14:17:05 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:16:59.000000", "size": 1, "id": "f9d89acd-7140-4b34-8435-9889bd843b6c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:05 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/f9d89acd-7140-4b34-8435-9889bd843b6c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-fd258535-2822-412d-9abb-310e37d7099e X-Openstack-Request-Id: - req-fd258535-2822-412d-9abb-310e37d7099e Date: - Tue, 03 May 2016 14:17:09 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot f9d89acd-7140-4b34-8435-9889bd843b6c could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:17:10 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ff13e805-645b-4f25-a418-719d16de9e36 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-ff13e805-645b-4f25-a418-719d16de9e36 Date: - Tue, 03 May 2016 14:17:10 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:10 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-09c04e5c-3421-4bc4-bdcb-ca99df73e347 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-09c04e5c-3421-4bc4-bdcb-ca99df73e347 Date: - Tue, 03 May 2016 14:17:10 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:10 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-de25ae0d-7ab5-4b30-8398-fb8850a5e7d9 Date: - Tue, 03 May 2016 14:17:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:17:11 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-aac303da-2925-41c0-ab42-263df782146e Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-aac303da-2925-41c0-ab42-263df782146e Date: - Tue, 03 May 2016 14:17:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:11 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-94f4da8c-6cd2-4665-b78f-f3fab83eff73 Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-94f4da8c-6cd2-4665-b78f-f3fab83eff73 Date: - Tue, 03 May 2016 14:17:12 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8cb6d197-ac1c-4123-80a6-07ab053f1897", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:57.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:13 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8cb6d197-ac1c-4123-80a6-07ab053f1897 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-801afa7b-10db-41e8-9207-91893fdc1526 X-Openstack-Request-Id: - req-801afa7b-10db-41e8-9207-91893fdc1526 Date: - Tue, 03 May 2016 14:17:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 8cb6d197-ac1c-4123-80a6-07ab053f1897 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:17:15 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_transfer_and_accept.yml000066400000000000000000001415351476630434000304760ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d8197958-a570-4770-9101-ab6efcd0f3eb Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-d8197958-a570-4770-9101-ab6efcd0f3eb Date: - Tue, 03 May 2016 14:15:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:15:56 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-e08dee44-1c11-4820-a813-d0c6628f311d Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-e08dee44-1c11-4820-a813-d0c6628f311d Date: - Tue, 03 May 2016 14:15:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:15:56.649135", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:15:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-958caeec-1809-451f-8243-b4844bb9b25d Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-958caeec-1809-451f-8243-b4844bb9b25d Date: - Tue, 03 May 2016 14:15:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-64e208c4-c805-4a5b-812d-9fc60dbe0fe1 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-64e208c4-c805-4a5b-812d-9fc60dbe0fe1 Date: - Tue, 03 May 2016 14:15:58 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:58 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d4b6501d-2dd2-4ba9-b44d-d54162d5da77 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-d4b6501d-2dd2-4ba9-b44d-d54162d5da77 Date: - Tue, 03 May 2016 14:15:58 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:15:58 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer body: encoding: UTF-8 string: '{"transfer":{"volume_id":"cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10","name":"fog-testtransfer-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-5a254149-aae0-44bf-b4a2-b86ee4513742 Content-Type: - application/json Content-Length: - '521' X-Openstack-Request-Id: - req-5a254149-aae0-44bf-b4a2-b86ee4513742 Date: - Tue, 03 May 2016 14:15:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"auth_key": "dc7b38fe1c52d599", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "bookmark"}], "created_at": "2016-05-03T14:15:59.154375", "volume_id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "id": "a21de056-6aa6-4848-94ee-8756ad2d7502", "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-346b845f-1c8b-40de-9962-4aa7bce9e003 Content-Type: - application/json Content-Length: - '489' X-Openstack-Request-Id: - req-346b845f-1c8b-40de-9962-4aa7bce9e003 Date: - Tue, 03 May 2016 14:15:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"created_at": "2016-05-03T14:15:59.000000", "volume_id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "id": "a21de056-6aa6-4848-94ee-8756ad2d7502", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "bookmark"}], "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a4d3959a-b705-45e4-94ca-e773d12ad67e Content-Type: - application/json Content-Length: - '492' X-Openstack-Request-Id: - req-a4d3959a-b705-45e4-94ca-e773d12ad67e Date: - Tue, 03 May 2016 14:15:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": [{"created_at": "2016-05-03T14:15:59.000000", "volume_id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "id": "a21de056-6aa6-4848-94ee-8756ad2d7502", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "bookmark"}], "name": "fog-testtransfer-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:59 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"demo","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"demo","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:15:59 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - c2b13add76a34c8fad98ed7150ea404e Vary: - X-Auth-Token X-Openstack-Request-Id: - req-89095f14-0dbb-48c2-b49c-941e7133fb78 Content-Length: - '7367' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d97660751404495ab8c405826d547c16", "name": "Member"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "name": "anotherrole"}], "expires_at": "2016-05-03T15:15:59.714461Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "d66fbe28f45a405a87fd32bb30f7c42e", "name": "demo"}, "audit_ids": ["w0zAjAb7SdS8JqbsoPq1IQ"], "issued_at": "2016-05-03T14:15:59.714509Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:15:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-3a218d7e-cdbf-4202-ab72-d21cab5fcbcf X-Openstack-Request-Id: - req-3a218d7e-cdbf-4202-ab72-d21cab5fcbcf Date: - Tue, 03 May 2016 14:15:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer a21de056-6aa6-4848-94ee-8756ad2d7502 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:00 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f9a2e085-e118-480c-a877-673e4eec7e0f Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-f9a2e085-e118-480c-a877-673e4eec7e0f Date: - Tue, 03 May 2016 14:16:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:00 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"dc7b38fe1c52d599"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 404 message: '' headers: Content-Length: - '129' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-0dbc6273-f16b-4a40-97ae-db22cd00f123 X-Openstack-Request-Id: - req-0dbc6273-f16b-4a40-97ae-db22cd00f123 Date: - Tue, 03 May 2016 14:16:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "TransferNotFound: Transfer ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:00 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"invalidauthkey"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 400 message: '' headers: Content-Length: - '141' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-9565e8c8-e4c5-420f-b119-c7562e5d4cb6 X-Openstack-Request-Id: - req-9565e8c8-e4c5-420f-b119-c7562e5d4cb6 Date: - Tue, 03 May 2016 14:16:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid auth key: Attempt to transfer a21de056-6aa6-4848-94ee-8756ad2d7502 with invalid auth key.", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:16:00 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"dc7b38fe1c52d599"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-a0caab17-2ff2-40e2-968a-25454819ade4 Content-Type: - application/json Content-Length: - '445' X-Openstack-Request-Id: - req-a0caab17-2ff2-40e2-968a-25454819ade4 Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502", "rel": "bookmark"}], "id": "a21de056-6aa6-4848-94ee-8756ad2d7502", "name": "fog-testtransfer-1", "volume_id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e6e67d4f-fc0c-4039-ad28-bd19766be149 Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-e6e67d4f-fc0c-4039-ad28-bd19766be149 Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-528f2027-4de6-4b44-837c-21f1233348ab X-Openstack-Request-Id: - req-528f2027-4de6-4b44-837c-21f1233348ab Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer a21de056-6aa6-4848-94ee-8756ad2d7502 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5699b7aa-2b58-4b8a-8828-ba138e5d34ab Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-5699b7aa-2b58-4b8a-8828-ba138e5d34ab Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/a21de056-6aa6-4848-94ee-8756ad2d7502 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-e4bde3d3-0ad1-4a18-8e53-f5b489149c9a X-Openstack-Request-Id: - req-e4bde3d3-0ad1-4a18-8e53-f5b489149c9a Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer a21de056-6aa6-4848-94ee-8756ad2d7502 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-063afa68-7954-42ab-8c5b-d7df5da278fc Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-063afa68-7954-42ab-8c5b-d7df5da278fc Date: - Tue, 03 May 2016 14:16:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d2a8fdca-2472-4182-be8d-4667d6fa8673 Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-d2a8fdca-2472-4182-be8d-4667d6fa8673 Date: - Tue, 03 May 2016 14:16:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4bff8deb-6cd9-49ff-91fd-c21df488fc18 Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-4bff8deb-6cd9-49ff-91fd-c21df488fc18 Date: - Tue, 03 May 2016 14:16:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:02 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-deadfd00-a9b3-470e-bc99-d8c2c73aada1 Date: - Tue, 03 May 2016 14:16:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c7ea2813-61d8-4e4f-bbf4-88faf802630b Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-c7ea2813-61d8-4e4f-bbf4-88faf802630b Date: - Tue, 03 May 2016 14:16:03 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:03 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e9212d22-d367-4a8a-800a-adff6d0203d0 Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-e9212d22-d367-4a8a-800a-adff6d0203d0 Date: - Tue, 03 May 2016 14:16:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:04 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8a8e695c-535c-4d93-b27a-83a23eed903e Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-8a8e695c-535c-4d93-b27a-83a23eed903e Date: - Tue, 03 May 2016 14:16:07 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:15:56.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:07 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - c2b13add76a34c8fad98ed7150ea404e response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-643f0b50-c17d-43b5-8c57-85d0ff6e9e66 X-Openstack-Request-Id: - req-643f0b50-c17d-43b5-8c57-85d0ff6e9e66 Date: - Tue, 03 May 2016 14:16:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume cbd02b79-0df4-4a30-9bd6-aa3eaa1baf10 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:11 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_transfer_and_delete.yml000066400000000000000000001071371476630434000305010ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0ff504b8-4ef5-4f43-acc2-5710c23d69d1 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-0ff504b8-4ef5-4f43-acc2-5710c23d69d1 Date: - Tue, 03 May 2016 14:16:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:11 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-ec5b94c4-bb85-466e-abba-5b8831e3edec Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-ec5b94c4-bb85-466e-abba-5b8831e3edec Date: - Tue, 03 May 2016 14:16:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:16:11.707842", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:16:11 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-49a58f15-833e-4509-b761-86ce51387c81 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-49a58f15-833e-4509-b761-86ce51387c81 Date: - Tue, 03 May 2016 14:16:12 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:12 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-52bfabb4-4672-4edc-b384-27ff9b27136b Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-52bfabb4-4672-4edc-b384-27ff9b27136b Date: - Tue, 03 May 2016 14:16:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:13 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1de12529-e3f7-4d47-8e5b-d3bf1e2ac5d6 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-1de12529-e3f7-4d47-8e5b-d3bf1e2ac5d6 Date: - Tue, 03 May 2016 14:16:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:16:13 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer body: encoding: UTF-8 string: '{"transfer":{"volume_id":"8f3fd916-39c6-4ae1-8e43-683077b2a6af","name":"fog-testtransfer-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-458789a9-f873-4b4d-8247-50a48b3eb892 Content-Type: - application/json Content-Length: - '521' X-Openstack-Request-Id: - req-458789a9-f873-4b4d-8247-50a48b3eb892 Date: - Tue, 03 May 2016 14:16:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"auth_key": "16646b89e48ba00b", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/e5ad5e93-1875-46eb-a55d-e45960b222e9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/e5ad5e93-1875-46eb-a55d-e45960b222e9", "rel": "bookmark"}], "created_at": "2016-05-03T14:16:13.969010", "volume_id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "id": "e5ad5e93-1875-46eb-a55d-e45960b222e9", "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:14 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"demo","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"demo","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:16:14 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 5caa8654d3f748f891431bf7eda6e949 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-dba14647-8090-4ad1-b292-7eac9cd9016b Content-Length: - '7367' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d97660751404495ab8c405826d547c16", "name": "Member"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "name": "anotherrole"}], "expires_at": "2016-05-03T15:16:14.376971Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "d66fbe28f45a405a87fd32bb30f7c42e", "name": "demo"}, "audit_ids": ["ZfdPzHNGQKONDTijEgoiMg"], "issued_at": "2016-05-03T14:16:14.377018Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:14 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/e5ad5e93-1875-46eb-a55d-e45960b222e9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-73e395e5-0040-43e9-86d0-3daf84be213c Date: - Tue, 03 May 2016 14:16:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:15 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/e5ad5e93-1875-46eb-a55d-e45960b222e9/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"16646b89e48ba00b"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 5caa8654d3f748f891431bf7eda6e949 response: status: code: 404 message: '' headers: Content-Length: - '129' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-7494843e-5285-4150-b4b2-ea63d073eea1 X-Openstack-Request-Id: - req-7494843e-5285-4150-b4b2-ea63d073eea1 Date: - Tue, 03 May 2016 14:16:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "TransferNotFound: Transfer e5ad5e93-1875-46eb-a55d-e45960b222e9 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-484d3f5a-bb58-4a7d-84b2-0474bca189d3 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-484d3f5a-bb58-4a7d-84b2-0474bca189d3 Date: - Tue, 03 May 2016 14:16:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4c8446ec-6b3d-4adb-a81c-d913177b9dcd Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-4c8446ec-6b3d-4adb-a81c-d913177b9dcd Date: - Tue, 03 May 2016 14:16:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:15 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-260c35ad-5eb5-4994-a9ee-9d808874014f Date: - Tue, 03 May 2016 14:16:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:16:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-11e05445-c5e5-4677-9f77-7153fd937e34 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-11e05445-c5e5-4677-9f77-7153fd937e34 Date: - Tue, 03 May 2016 14:16:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-79101566-654e-4fb9-ab5e-32f4c02d93da Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-79101566-654e-4fb9-ab5e-32f4c02d93da Date: - Tue, 03 May 2016 14:16:17 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:17 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-19b2f7c8-f7c1-4729-a8b5-17252bf65485 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-19b2f7c8-f7c1-4729-a8b5-17252bf65485 Date: - Tue, 03 May 2016 14:16:20 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "8f3fd916-39c6-4ae1-8e43-683077b2a6af", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:16:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:16:20 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/8f3fd916-39c6-4ae1-8e43-683077b2a6af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-630c2029-7f97-4097-90b6-4e6c16635cdd X-Openstack-Request-Id: - req-630c2029-7f97-4097-90b6-4e6c16635cdd Date: - Tue, 03 May 2016 14:16:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 8f3fd916-39c6-4ae1-8e43-683077b2a6af could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:16:24 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume/volume_type_read.yml000066400000000000000000000077121476630434000264630ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8fb272c9-5c2d-4c39-a68d-342139447a0a Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-8fb272c9-5c2d-4c39-a68d-342139447a0a Date: - Tue, 03 May 2016 14:15:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:41 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types/326e2b0b-3776-49a5-b26d-4de79ac659ed body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5ce8cc43-b17c-4ef4-bc4e-78a94ff376c9 Content-Type: - application/json Content-Length: - '222' X-Openstack-Request-Id: - req-5ce8cc43-b17c-4ef4-bc4e-78a94ff376c9 Date: - Tue, 03 May 2016 14:15:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_type": {"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}}' http_version: recorded_at: Tue, 03 May 2016 14:15:41 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types?lvmdriver-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 96082e8bba9d418b8ce232496fa059ab response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8e238a69-f835-423c-8b85-6465f2c07c9c Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-8e238a69-f835-423c-8b85-6465f2c07c9c Date: - Tue, 03 May 2016 14:15:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:15:42 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/000077500000000000000000000000001476630434000227745ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/common_setup.yml000066400000000000000000000436661476630434000262460ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:17:50 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 6f2b8bd469b641839f77f8101c8b19ce Vary: - X-Auth-Token X-Openstack-Request-Id: - req-e86dc3c4-d41f-4402-bc03-0559ec9961be Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T15:17:50.468237Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["1umUxRY-SWuMC0EQT_ltlg"], "issued_at": "2016-05-03T14:17:50.468300Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:50 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 6f2b8bd469b641839f77f8101c8b19ce response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 14:17:50 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b92251a4-a6a2-463c-bd19-a01635d81191 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 14:17:50 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"6f2b8bd469b641839f77f8101c8b19ce"}},"scope":{"project":{"id":"2ab82e30d7984631874def67813dffd8"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:17:50 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-96dc21f5-645a-4905-afca-57989b69cbeb Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T15:17:50.468237Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["ScPTyF3ySNGmLX96vGdc9Q", "1umUxRY-SWuMC0EQT_ltlg"], "issued_at": "2016-05-03T14:17:50.971765Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:17:51 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_crud.yml000066400000000000000000000716631476630434000260600ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-03c9df4b-f039-4d48-9dc2-5e9f28ab5fec Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-03c9df4b-f039-4d48-9dc2-5e9f28ab5fec Date: - Tue, 03 May 2016 14:17:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:17:51 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":"This is the volume description.","size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9a2c62f4-7a5a-4b17-b3d7-c6170462aab9 Content-Type: - application/json Content-Length: - '431' X-Openstack-Request-Id: - req-9a2c62f4-7a5a-4b17-b3d7-c6170462aab9 Date: - Tue, 03 May 2016 14:17:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.483491", "multiattach": "false", "display_description": "This is the volume description.", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-771206b6-7944-42be-b4f9-23e131f46b8c Content-Type: - application/json Content-Length: - '737' X-Openstack-Request-Id: - req-771206b6-7944-42be-b4f9-23e131f46b8c Date: - Tue, 03 May 2016 14:17:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}]}' http_version: recorded_at: Tue, 03 May 2016 14:17:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-bf0cb0f0-9b84-4da8-a7a3-6c5b7956a59f Content-Type: - application/json Content-Length: - '734' X-Openstack-Request-Id: - req-bf0cb0f0-9b84-4da8-a7a3-6c5b7956a59f Date: - Tue, 03 May 2016 14:17:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8d9f64c8-4e0d-4e40-8ffc-da2813de7d79 Content-Type: - application/json Content-Length: - '735' X-Openstack-Request-Id: - req-8d9f64c8-4e0d-4e40-8ffc-da2813de7d79 Date: - Tue, 03 May 2016 14:17:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-10ea3d3a-ccd5-48a0-9fca-47cc78f2e7a9 Content-Type: - application/json Content-Length: - '738' X-Openstack-Request-Id: - req-10ea3d3a-ccd5-48a0-9fca-47cc78f2e7a9 Date: - Tue, 03 May 2016 14:17:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}]}' http_version: recorded_at: Tue, 03 May 2016 14:17:52 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-updated-testvolume-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ca3eb66d-bfef-4bce-9599-b3d2dfad3fcb Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-ca3eb66d-bfef-4bce-9599-b3d2dfad3fcb Date: - Tue, 03 May 2016 14:17:53 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "display_description": "This is the volume description.", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:53 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-updated-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3c5548a2-7ef7-47f3-b526-96774439dc58 Content-Type: - application/json Content-Length: - '746' X-Openstack-Request-Id: - req-3c5548a2-7ef7-47f3-b526-96774439dc58 Date: - Tue, 03 May 2016 14:17:53 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}]}' http_version: recorded_at: Tue, 03 May 2016 14:17:53 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-updated-testvolume-1","display_description":"This is the updated volume description.","metadata":{}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-60c2df03-21c8-4d86-8881-2ef79f3c6ed4 Content-Type: - application/json Content-Length: - '448' X-Openstack-Request-Id: - req-60c2df03-21c8-4d86-8881-2ef79f3c6ed4 Date: - Tue, 03 May 2016 14:17:54 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "display_description": "This is the updated volume description.", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:54 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d5b81113-fee7-49f9-8bef-2609729062a2 Content-Type: - application/json Content-Length: - '751' X-Openstack-Request-Id: - req-d5b81113-fee7-49f9-8bef-2609729062a2 Date: - Tue, 03 May 2016 14:17:54 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:54 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-328f0fbb-fd80-48d9-a15b-1ae133da1cf1 Content-Type: - application/json Content-Length: - '751' X-Openstack-Request-Id: - req-328f0fbb-fd80-48d9-a15b-1ae133da1cf1 Date: - Tue, 03 May 2016 14:17:54 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:55 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-abf9d073-ea6d-4355-ae7c-38a60640316c Content-Type: - application/json Content-Length: - '751' X-Openstack-Request-Id: - req-abf9d073-ea6d-4355-ae7c-38a60640316c Date: - Tue, 03 May 2016 14:17:55 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:55 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b4ded387-8246-4afe-bfba-574a44506fec Date: - Tue, 03 May 2016 14:17:55 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:17:55 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-01283be3-47e5-42eb-ae17-39d779f9835f Content-Type: - application/json Content-Length: - '750' X-Openstack-Request-Id: - req-01283be3-47e5-42eb-ae17-39d779f9835f Date: - Tue, 03 May 2016 14:17:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:56 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0233dcd2-d40e-46f3-bcbd-f6b3f7020cbb Content-Type: - application/json Content-Length: - '750' X-Openstack-Request-Id: - req-0233dcd2-d40e-46f3-bcbd-f6b3f7020cbb Date: - Tue, 03 May 2016 14:17:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3712afaa-9a4c-4e8c-a521-5044d27f9596 Content-Type: - application/json Content-Length: - '750' X-Openstack-Request-Id: - req-3712afaa-9a4c-4e8c-a521-5044d27f9596 Date: - Tue, 03 May 2016 14:17:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-updated-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:17:51.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": "This is the updated volume description.", "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "3b59e23e-d5b5-42be-b297-f4880c1bbb5f", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:17:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3b59e23e-d5b5-42be-b297-f4880c1bbb5f body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-51cdd343-9d75-4a56-8340-fbe1dd51e757 X-Openstack-Request-Id: - req-51cdd343-9d75-4a56-8340-fbe1dd51e757 Date: - Tue, 03 May 2016 14:18:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:04 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_extend.yml000066400000000000000000000656301476630434000264070ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-dd76906d-6ad7-445a-98e7-e5d78c364836 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-dd76906d-6ad7-445a-98e7-e5d78c364836 Date: - Tue, 03 May 2016 14:18:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:04 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3d0fa8f4-a1da-4987-b58c-69e756ce598b Content-Type: - application/json Content-Length: - '402' X-Openstack-Request-Id: - req-3d0fa8f4-a1da-4987-b58c-69e756ce598b Date: - Tue, 03 May 2016 14:18:05 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.880668", "multiattach": "false", "display_description": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:05 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e0101f23-fa62-41b6-9aa2-515c5c03beab Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-e0101f23-fa62-41b6-9aa2-515c5c03beab Date: - Tue, 03 May 2016 14:18:05 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:05 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9847de26-bf3d-4f95-a750-993ba24ed37e Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-9847de26-bf3d-4f95-a750-993ba24ed37e Date: - Tue, 03 May 2016 14:18:06 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:07 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":2}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-75ef36a8-9855-4684-82e3-7fa103d88b06 Date: - Tue, 03 May 2016 14:18:07 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:18:07 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-37c03428-99cd-44c1-a67f-f813a4e6a057 Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-37c03428-99cd-44c1-a67f-f813a4e6a057 Date: - Tue, 03 May 2016 14:18:07 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "extending", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:08 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b17d1204-0929-421a-84ee-10b71c49f094 Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-b17d1204-0929-421a-84ee-10b71c49f094 Date: - Tue, 03 May 2016 14:18:09 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:09 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 400 message: '' headers: Content-Length: - '149' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-aca24ec3-6204-4d77-8892-ac86e1620581 X-Openstack-Request-Id: - req-aca24ec3-6204-4d77-8892-ac86e1620581 Date: - Tue, 03 May 2016 14:18:09 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid input received: New size for extend must be greater than current size. (current: 2, extended: 1).", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:18:09 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9954ca92-8e9c-438d-9920-84da64b4d074 Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-9954ca92-8e9c-438d-9920-84da64b4d074 Date: - Tue, 03 May 2016 14:18:09 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:10 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3fbb2d54-df94-42e7-9d65-b820adf308be Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-3fbb2d54-df94-42e7-9d65-b820adf308be Date: - Tue, 03 May 2016 14:18:10 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:10 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-de3ce4ad-edb9-468b-be7f-88b5975bda0a Date: - Tue, 03 May 2016 14:18:10 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:18:10 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a62122ce-f086-457d-b55e-4c8286617261 Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-a62122ce-f086-457d-b55e-4c8286617261 Date: - Tue, 03 May 2016 14:18:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:11 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-500cbf5c-5b54-463a-9e44-ba472ac311ff Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-500cbf5c-5b54-463a-9e44-ba472ac311ff Date: - Tue, 03 May 2016 14:18:12 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:12 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4fd4e2af-44db-4450-af6f-8eb185136e2a Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-4fd4e2af-44db-4450-af6f-8eb185136e2a Date: - Tue, 03 May 2016 14:18:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-11cf5454-8506-4d6c-947e-b6046f72da45 Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-11cf5454-8506-4d6c-947e-b6046f72da45 Date: - Tue, 03 May 2016 14:18:19 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:04.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "24633cda-57ff-4c98-af1c-dcb1aac8c45a", "os-vol-mig-status-attr:migstat": null, "size": 2}}' http_version: recorded_at: Tue, 03 May 2016 14:18:19 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-3ebc920c-8a18-4413-aaf1-214d22e4f0c9 X-Openstack-Request-Id: - req-3ebc920c-8a18-4413-aaf1-214d22e4f0c9 Date: - Tue, 03 May 2016 14:18:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:27 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/24633cda-57ff-4c98-af1c-dcb1aac8c45a/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-f3f31ed4-2b41-4bce-8e14-e3c64e3dcbb6 X-Openstack-Request-Id: - req-f3f31ed4-2b41-4bce-8e14-e3c64e3dcbb6 Date: - Tue, 03 May 2016 14:18:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 24633cda-57ff-4c98-af1c-dcb1aac8c45a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:27 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_metadata_crud.yml000066400000000000000000000730351476630434000277130ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-27804fee-c8c8-4e08-8044-63887a6e6642 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-27804fee-c8c8-4e08-8044-63887a6e6642 Date: - Tue, 03 May 2016 14:18:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:56 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4cfe1279-d062-4799-af81-3faec1ca7eb2 Content-Type: - application/json Content-Length: - '468' X-Openstack-Request-Id: - req-4cfe1279-d062-4799-af81-3faec1ca7eb2 Date: - Tue, 03 May 2016 14:18:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.674905", "multiattach": "false", "display_description": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:56 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5d659ffc-6868-4c31-98bb-c290c6089b15 Content-Type: - application/json Content-Length: - '771' X-Openstack-Request-Id: - req-5d659ffc-6868-4c31-98bb-c290c6089b15 Date: - Tue, 03 May 2016 14:18:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0bcd5e80-581b-497a-8206-00c4ca85928b Content-Type: - application/json Content-Length: - '772' X-Openstack-Request-Id: - req-0bcd5e80-581b-497a-8206-00c4ca85928b Date: - Tue, 03 May 2016 14:18:58 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:58 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-eeadba23-7c02-4218-85f0-a9822df62103 Content-Type: - application/json Content-Length: - '772' X-Openstack-Request-Id: - req-eeadba23-7c02-4218-85f0-a9822df62103 Date: - Tue, 03 May 2016 14:18:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:59 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated","new_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a8c28a17-5534-43cf-ac1d-2074e0865d78 Content-Type: - application/json Content-Length: - '116' X-Openstack-Request-Id: - req-a8c28a17-5534-43cf-ac1d-2074e0865d78 Date: - Tue, 03 May 2016 14:18:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}}' http_version: recorded_at: Tue, 03 May 2016 14:18:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6c378b9a-d239-48b9-92be-d12c3aba4d09 Content-Type: - application/json Content-Length: - '806' X-Openstack-Request-Id: - req-6c378b9a-d239-48b9-92be-d12c3aba4d09 Date: - Tue, 03 May 2016 14:18:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:00 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated again","newer_metadata":"this is newer"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b1cbd2a5-60b9-4a7a-8176-cd1ab2560cbf Content-Type: - application/json Content-Length: - '91' X-Openstack-Request-Id: - req-b1cbd2a5-60b9-4a7a-8176-cd1ab2560cbf Date: - Tue, 03 May 2016 14:19:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}}' http_version: recorded_at: Tue, 03 May 2016 14:19:00 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3d816c48-34c5-429d-84bb-165a542e3606 Content-Type: - application/json Content-Length: - '781' X-Openstack-Request-Id: - req-3d816c48-34c5-429d-84bb-165a542e3606 Date: - Tue, 03 May 2016 14:19:00 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:00 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff/metadata/some_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-976cd537-a755-4bd6-bd7f-de32c7eaf323 Date: - Tue, 03 May 2016 14:19:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:19:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-649d0266-e156-42af-a7f3-84e2b21823a8 Content-Type: - application/json Content-Length: - '739' X-Openstack-Request-Id: - req-649d0266-e156-42af-a7f3-84e2b21823a8 Date: - Tue, 03 May 2016 14:19:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:01 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d63a833e-62fa-42be-950c-1c5563fe115d Content-Type: - application/json Content-Length: - '739' X-Openstack-Request-Id: - req-d63a833e-62fa-42be-950c-1c5563fe115d Date: - Tue, 03 May 2016 14:19:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fecc8969-48cd-4a6f-a05e-d4a0385fb2b2 Content-Type: - application/json Content-Length: - '739' X-Openstack-Request-Id: - req-fecc8969-48cd-4a6f-a05e-d4a0385fb2b2 Date: - Tue, 03 May 2016 14:19:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:02 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b7813ecb-d22f-4077-b88d-14f39be58c80 Date: - Tue, 03 May 2016 14:19:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:19:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fa0cbb7d-c50e-4101-85c1-4651c3b87034 Content-Type: - application/json Content-Length: - '738' X-Openstack-Request-Id: - req-fa0cbb7d-c50e-4101-85c1-4651c3b87034 Date: - Tue, 03 May 2016 14:19:03 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:03 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3116d992-9e45-4728-aa36-28a23f4db3ef Content-Type: - application/json Content-Length: - '738' X-Openstack-Request-Id: - req-3116d992-9e45-4728-aa36-28a23f4db3ef Date: - Tue, 03 May 2016 14:19:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:04 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b7717090-2025-45d7-97e4-505a1e2d438a Content-Type: - application/json Content-Length: - '738' X-Openstack-Request-Id: - req-b7717090-2025-45d7-97e4-505a1e2d438a Date: - Tue, 03 May 2016 14:19:06 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:56.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"newer_metadata": "this is newer"}, "id": "00a28104-2d62-47db-95ef-7903c62105ff", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:07 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/00a28104-2d62-47db-95ef-7903c62105ff body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-d29bb1f5-02d0-43f3-a87d-29aa03355926 X-Openstack-Request-Id: - req-d29bb1f5-02d0-43f3-a87d-29aa03355926 Date: - Tue, 03 May 2016 14:19:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:19:11 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_snapshot_and_delete.yml000066400000000000000000001012351476630434000311130ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-555a8892-35e0-4546-a2df-4767955acfe0 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-555a8892-35e0-4546-a2df-4767955acfe0 Date: - Tue, 03 May 2016 14:18:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:38 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-de79c95f-5cb8-4fd9-a2fe-9dfe29fad88a Content-Type: - application/json Content-Length: - '402' X-Openstack-Request-Id: - req-de79c95f-5cb8-4fd9-a2fe-9dfe29fad88a Date: - Tue, 03 May 2016 14:18:39 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.047751", "multiattach": "false", "display_description": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:39 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ad4280f6-eb74-4f93-b99f-92a199815f95 Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-ad4280f6-eb74-4f93-b99f-92a199815f95 Date: - Tue, 03 May 2016 14:18:39 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:39 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8ab0bd4b-4cff-418a-812c-5940f865d03c Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-8ab0bd4b-4cff-418a-812c-5940f865d03c Date: - Tue, 03 May 2016 14:18:40 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:41 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/detail?display_name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-324fdf83-3254-433c-8b56-2858ecca766b Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-324fdf83-3254-433c-8b56-2858ecca766b Date: - Tue, 03 May 2016 14:18:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:41 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512","display_name":"fog-testsnapshot-1","display_description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d2c926cb-5229-48d7-a575-6f015023feb3 Content-Type: - application/json Content-Length: - '284' X-Openstack-Request-Id: - req-d2c926cb-5229-48d7-a575-6f015023feb3 Date: - Tue, 03 May 2016 14:18:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.691045", "display_description": "Test snapshot", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:41 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1090b170-5968-4f2f-8598-1f34eb473567 Content-Type: - application/json Content-Length: - '416' X-Openstack-Request-Id: - req-1090b170-5968-4f2f-8598-1f34eb473567 Date: - Tue, 03 May 2016 14:18:41 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "0%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:41 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8c709ce6-a22c-43bc-ac99-12982df1e845 Content-Type: - application/json Content-Length: - '419' X-Openstack-Request-Id: - req-8c709ce6-a22c-43bc-ac99-12982df1e845 Date: - Tue, 03 May 2016 14:18:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:43 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: UTF-8 string: '{"snapshot":{"display_description":"Updated description"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-36b02bd5-c0cc-42b1-b003-d5b507251f23 Content-Type: - application/json Content-Length: - '291' X-Openstack-Request-Id: - req-36b02bd5-c0cc-42b1-b003-d5b507251f23 Date: - Tue, 03 May 2016 14:18:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Updated description", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-274e4d8c-2d45-48ba-9a3b-6c5bd1116e98 Content-Type: - application/json Content-Length: - '425' X-Openstack-Request-Id: - req-274e4d8c-2d45-48ba-9a3b-6c5bd1116e98 Date: - Tue, 03 May 2016 14:18:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Updated description", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:43 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-f4599780-c856-46cc-8b1a-937fcd6c0d24 Date: - Tue, 03 May 2016 14:18:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:18:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-2e2fe00d-dd0c-4276-94e4-36ab9265f72a Content-Type: - application/json Content-Length: - '424' X-Openstack-Request-Id: - req-2e2fe00d-dd0c-4276-94e4-36ab9265f72a Date: - Tue, 03 May 2016 14:18:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Updated description", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:43 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-449a329d-4f22-495c-93b2-8d3bee14460a Content-Type: - application/json Content-Length: - '424' X-Openstack-Request-Id: - req-449a329d-4f22-495c-93b2-8d3bee14460a Date: - Tue, 03 May 2016 14:18:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Updated description", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:44 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d6d32ff3-af14-4c2d-8c90-07ec98b947e5 Content-Type: - application/json Content-Length: - '424' X-Openstack-Request-Id: - req-d6d32ff3-af14-4c2d-8c90-07ec98b947e5 Date: - Tue, 03 May 2016 14:18:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:18:41.000000", "display_description": "Updated description", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "983754a7-c4e7-4cfa-97db-fe0c147a2978", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-c72dddb4-6b77-40f5-8c32-cb3dc6bc2ec6 X-Openstack-Request-Id: - req-c72dddb4-6b77-40f5-8c32-cb3dc6bc2ec6 Date: - Tue, 03 May 2016 14:18:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:51 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/983754a7-c4e7-4cfa-97db-fe0c147a2978 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-a683f845-f689-4fbe-a3c6-bb5ff8c43156 X-Openstack-Request-Id: - req-a683f845-f689-4fbe-a3c6-bb5ff8c43156 Date: - Tue, 03 May 2016 14:18:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4fbbe58d-0230-45d3-8ffc-a803ab81d675 Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-4fbbe58d-0230-45d3-8ffc-a803ab81d675 Date: - Tue, 03 May 2016 14:18:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-aedb9b86-ea0f-4ebd-b901-9f2e168e62d9 Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-aedb9b86-ea0f-4ebd-b901-9f2e168e62d9 Date: - Tue, 03 May 2016 14:18:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:51 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-285ef4a8-4403-460c-9351-75c34ccc4339 Date: - Tue, 03 May 2016 14:18:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:18:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-abedd7d9-866b-495c-8b97-773786281bb6 Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-abedd7d9-866b-495c-8b97-773786281bb6 Date: - Tue, 03 May 2016 14:18:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7a261c01-502e-4d97-a589-13ec5875e034 Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-7a261c01-502e-4d97-a589-13ec5875e034 Date: - Tue, 03 May 2016 14:18:54 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:39.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:54 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/9b4fe9d7-37f0-4cc4-8a79-b0dad9c9b512 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-50405d14-31fc-4abf-b9d2-c26204918c08 X-Openstack-Request-Id: - req-50405d14-31fc-4abf-b9d2-c26204918c08 Date: - Tue, 03 May 2016 14:18:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:56 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_snapshot_metadata_crud.yml000066400000000000000000001224421476630434000316270ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7e4d53df-86cf-4b2e-bd03-1dfa7a2d1486 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-7e4d53df-86cf-4b2e-bd03-1dfa7a2d1486 Date: - Tue, 03 May 2016 14:19:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:19:11 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c2b5bae1-23e0-4086-ba91-e93dddb4bd81 Content-Type: - application/json Content-Length: - '468' X-Openstack-Request-Id: - req-c2b5bae1-23e0-4086-ba91-e93dddb4bd81 Date: - Tue, 03 May 2016 14:19:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.543146", "multiattach": "false", "display_description": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:11 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e9a29a08-2862-4c02-8340-5f16993556ea Content-Type: - application/json Content-Length: - '771' X-Openstack-Request-Id: - req-e9a29a08-2862-4c02-8340-5f16993556ea Date: - Tue, 03 May 2016 14:19:12 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:12 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-000aeb82-c57a-4767-9e12-42b7738264fd Content-Type: - application/json Content-Length: - '772' X-Openstack-Request-Id: - req-000aeb82-c57a-4767-9e12-42b7738264fd Date: - Tue, 03 May 2016 14:19:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:13 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/detail?display_name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7c4c50a9-e5cd-42c1-a63e-71f6a1a9449d Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-7c4c50a9-e5cd-42c1-a63e-71f6a1a9449d Date: - Tue, 03 May 2016 14:19:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:19:13 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"3e03d3d2-92cf-4271-9357-3983ac02c4b9","display_name":"fog-testsnapshot-1","display_description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-4a2fa2cf-de71-4a66-84e2-0cf4a05a9257 Content-Type: - application/json Content-Length: - '284' X-Openstack-Request-Id: - req-4a2fa2cf-de71-4a66-84e2-0cf4a05a9257 Date: - Tue, 03 May 2016 14:19:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.988115", "display_description": "Test snapshot", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "metadata": {}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:14 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a2799c01-61f2-4e43-9e5d-9ee38eebce2e Content-Type: - application/json Content-Length: - '416' X-Openstack-Request-Id: - req-a2799c01-61f2-4e43-9e5d-9ee38eebce2e Date: - Tue, 03 May 2016 14:19:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "0%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:14 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-2bbe7aff-117e-4076-aabb-65de202effb6 Content-Type: - application/json Content-Length: - '419' X-Openstack-Request-Id: - req-2bbe7aff-117e-4076-aabb-65de202effb6 Date: - Tue, 03 May 2016 14:19:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-bdbd8025-c097-49e7-8439-21c336c05421 Content-Type: - application/json Content-Length: - '419' X-Openstack-Request-Id: - req-bdbd8025-c097-49e7-8439-21c336c05421 Date: - Tue, 03 May 2016 14:19:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:15 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c/metadata body: encoding: UTF-8 string: '{"metadata":{"some_snapshot_metadata":"this is data","new_snapshot_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-829e7786-1e76-4af6-b0ba-e65fd3d0bfb6 Content-Type: - application/json Content-Length: - '96' X-Openstack-Request-Id: - req-829e7786-1e76-4af6-b0ba-e65fd3d0bfb6 Date: - Tue, 03 May 2016 14:19:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}}' http_version: recorded_at: Tue, 03 May 2016 14:19:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6b738a89-aa44-4179-86bd-55f5479d19a4 Content-Type: - application/json Content-Length: - '499' X-Openstack-Request-Id: - req-6b738a89-aa44-4179-86bd-55f5479d19a4 Date: - Tue, 03 May 2016 14:19:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:15 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c/metadata/some_snapshot_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-6cea3595-a348-4a0b-89b8-d1192ca77499 Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0c567ebf-c271-4960-a6c6-9770822951f1 Content-Type: - application/json Content-Length: - '457' X-Openstack-Request-Id: - req-0c567ebf-c271-4960-a6c6-9770822951f1 Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3ef0f78c-49d9-434d-8776-2878ae76e6e7 Content-Type: - application/json Content-Length: - '457' X-Openstack-Request-Id: - req-3ef0f78c-49d9-434d-8776-2878ae76e6e7 Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-48f3b24b-8ad7-412e-b9ec-8c32e741bbdf Content-Type: - application/json Content-Length: - '457' X-Openstack-Request-Id: - req-48f3b24b-8ad7-412e-b9ec-8c32e741bbdf Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-a7d3387a-defa-478b-8890-a0911521494b Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-65ffe9f9-7a96-4f09-9bda-aedd463eec2c Content-Type: - application/json Content-Length: - '456' X-Openstack-Request-Id: - req-65ffe9f9-7a96-4f09-9bda-aedd463eec2c Date: - Tue, 03 May 2016 14:19:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-091c9e11-b2b9-4dd6-a6ae-e4a8f6f1813f Content-Type: - application/json Content-Length: - '456' X-Openstack-Request-Id: - req-091c9e11-b2b9-4dd6-a6ae-e4a8f6f1813f Date: - Tue, 03 May 2016 14:19:17 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:18 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-964d3882-180c-4f6c-b208-f9f22708cc4d Content-Type: - application/json Content-Length: - '456' X-Openstack-Request-Id: - req-964d3882-180c-4f6c-b208-f9f22708cc4d Date: - Tue, 03 May 2016 14:19:20 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "display_name": "fog-testsnapshot-1", "created_at": "2016-05-03T14:19:13.000000", "display_description": "Test snapshot", "os-extended-snapshot-attributes:progress": "100%", "volume_id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "metadata": {"new_snapshot_metadata": "this is new"}, "id": "46cd749b-1a21-42a9-a315-fcc996c3087c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:20 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/snapshots/46cd749b-1a21-42a9-a315-fcc996c3087c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-5ef21400-12df-45ce-9588-4528fad02393 X-Openstack-Request-Id: - req-5ef21400-12df-45ce-9588-4528fad02393 Date: - Tue, 03 May 2016 14:19:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:19:24 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0a3b7f0c-394a-49bc-ab58-e8f0abe725c7 Content-Type: - application/json Content-Length: - '772' X-Openstack-Request-Id: - req-0a3b7f0c-394a-49bc-ab58-e8f0abe725c7 Date: - Tue, 03 May 2016 14:19:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:24 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0a747b6a-a77d-42c5-b247-f08716fb5098 Content-Type: - application/json Content-Length: - '772' X-Openstack-Request-Id: - req-0a747b6a-a77d-42c5-b247-f08716fb5098 Date: - Tue, 03 May 2016 14:19:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:25 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-b842ead5-1517-4bfa-b31e-22bfa8178a5c Date: - Tue, 03 May 2016 14:19:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:19:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8cb14105-ba91-4971-97a6-c147adefee2d Content-Type: - application/json Content-Length: - '771' X-Openstack-Request-Id: - req-8cb14105-ba91-4971-97a6-c147adefee2d Date: - Tue, 03 May 2016 14:19:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c19b5844-c303-4f6a-a317-b0411777b237 Content-Type: - application/json Content-Length: - '771' X-Openstack-Request-Id: - req-c19b5844-c303-4f6a-a317-b0411777b237 Date: - Tue, 03 May 2016 14:19:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0a0e0bdd-8560-4a07-a754-b265fb8e2b62 Content-Type: - application/json Content-Length: - '771' X-Openstack-Request-Id: - req-0a0e0bdd-8560-4a07-a754-b265fb8e2b62 Date: - Tue, 03 May 2016 14:19:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:19:11.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "3e03d3d2-92cf-4271-9357-3983ac02c4b9", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:19:30 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/3e03d3d2-92cf-4271-9357-3983ac02c4b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-a3aec613-64a6-4292-8b0c-d85e728afe35 X-Openstack-Request-Id: - req-a3aec613-64a6-4292-8b0c-d85e728afe35 Date: - Tue, 03 May 2016 14:19:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:19:34 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_transfer_and_accept.yml000066400000000000000000001266401476630434000311040ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/detail?display_name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-708c433e-0f68-4433-9221-86b60930e34b Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-708c433e-0f68-4433-9221-86b60930e34b Date: - Tue, 03 May 2016 14:18:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:27 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"display_name":"fog-testvolume-1","display_description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0861107a-281d-430c-b634-a3ecec7ab62e Content-Type: - application/json Content-Length: - '402' X-Openstack-Request-Id: - req-0861107a-281d-430c-b634-a3ecec7ab62e Date: - Tue, 03 May 2016 14:18:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.147097", "multiattach": "false", "display_description": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-087fdc11-61aa-4440-90c9-6076a6db892f Content-Type: - application/json Content-Length: - '705' X-Openstack-Request-Id: - req-087fdc11-61aa-4440-90c9-6076a6db892f Date: - Tue, 03 May 2016 14:18:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-48d5b9f0-10e4-4b8a-a67e-9a552070eb1e Content-Type: - application/json Content-Length: - '706' X-Openstack-Request-Id: - req-48d5b9f0-10e4-4b8a-a67e-9a552070eb1e Date: - Tue, 03 May 2016 14:18:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "os-vol-mig-status-attr:name_id": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "os-vol-mig-status-attr:migstat": null, "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:30 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1a837bb2-a72b-4088-bd46-03ef35258980 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-1a837bb2-a72b-4088-bd46-03ef35258980 Date: - Tue, 03 May 2016 14:18:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:30 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer body: encoding: UTF-8 string: '{"transfer":{"volume_id":"42a23191-d56f-4235-8d95-3d3f69de3d67","name":"fog-testtransfer-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-e9b12a6b-dd64-46a0-a64c-fdcf0ed70b0d Content-Type: - application/json Content-Length: - '521' X-Openstack-Request-Id: - req-e9b12a6b-dd64-46a0-a64c-fdcf0ed70b0d Date: - Tue, 03 May 2016 14:18:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"auth_key": "764296b37245658d", "links": [{"href": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "bookmark"}], "created_at": "2016-05-03T14:18:30.668765", "volume_id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "id": "6e60dc20-a85d-439a-80c8-fda70774c69a", "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ffe41813-ea8d-4b03-82f2-f12d7dbd5c31 Content-Type: - application/json Content-Length: - '489' X-Openstack-Request-Id: - req-ffe41813-ea8d-4b03-82f2-f12d7dbd5c31 Date: - Tue, 03 May 2016 14:18:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"created_at": "2016-05-03T14:18:30.000000", "volume_id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "id": "6e60dc20-a85d-439a-80c8-fda70774c69a", "links": [{"href": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "bookmark"}], "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-bc81837b-6827-4bd3-8e2a-56eeb4afd3fd Content-Type: - application/json Content-Length: - '492' X-Openstack-Request-Id: - req-bc81837b-6827-4bd3-8e2a-56eeb4afd3fd Date: - Tue, 03 May 2016 14:18:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": [{"created_at": "2016-05-03T14:18:30.000000", "volume_id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "id": "6e60dc20-a85d-439a-80c8-fda70774c69a", "links": [{"href": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "bookmark"}], "name": "fog-testtransfer-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"demo","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"demo","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:18:31 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - afdc13ad24984611903ea1bb613f5677 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-4437c1ae-88fe-4b6b-8d80-8f73473eb13b Content-Length: - '7367' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d97660751404495ab8c405826d547c16", "name": "Member"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "name": "anotherrole"}], "expires_at": "2016-05-03T15:18:31.429111Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "d66fbe28f45a405a87fd32bb30f7c42e", "name": "demo"}, "audit_ids": ["DY2OJyj_SZ2pLhOEOyC_3w"], "issued_at": "2016-05-03T14:18:31.429160Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-772e5eb8-9161-45cf-8de1-f6555663014e X-Openstack-Request-Id: - req-772e5eb8-9161-45cf-8de1-f6555663014e Date: - Tue, 03 May 2016 14:18:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 6e60dc20-a85d-439a-80c8-fda70774c69a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0d1beed9-f893-4528-9f09-7d6a495a86de Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-0d1beed9-f893-4528-9f09-7d6a495a86de Date: - Tue, 03 May 2016 14:18:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:31 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"764296b37245658d"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 404 message: '' headers: Content-Length: - '129' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-996e21d2-1d03-4a3e-8ff0-169ff84b0062 X-Openstack-Request-Id: - req-996e21d2-1d03-4a3e-8ff0-169ff84b0062 Date: - Tue, 03 May 2016 14:18:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "TransferNotFound: Transfer ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:32 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"invalidauthkey"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 400 message: '' headers: Content-Length: - '141' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-076e70db-0b62-48af-acbf-1d058cb0044b X-Openstack-Request-Id: - req-076e70db-0b62-48af-acbf-1d058cb0044b Date: - Tue, 03 May 2016 14:18:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid auth key: Attempt to transfer 6e60dc20-a85d-439a-80c8-fda70774c69a with invalid auth key.", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:18:32 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"764296b37245658d"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-c6fa5fdf-0330-4cfa-9a2f-b6209a4efb67 Content-Type: - application/json Content-Length: - '445' X-Openstack-Request-Id: - req-c6fa5fdf-0330-4cfa-9a2f-b6209a4efb67 Date: - Tue, 03 May 2016 14:18:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"links": [{"href": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a", "rel": "bookmark"}], "id": "6e60dc20-a85d-439a-80c8-fda70774c69a", "name": "fog-testtransfer-1", "volume_id": "42a23191-d56f-4235-8d95-3d3f69de3d67"}}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-87e05aa9-b24c-44a2-a9b4-1ddaa6e7df2f Content-Type: - application/json Content-Length: - '561' X-Openstack-Request-Id: - req-87e05aa9-b24c-44a2-a9b4-1ddaa6e7df2f Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-4e2fa7c6-8e70-4a26-9d0d-a3fea0389f25 X-Openstack-Request-Id: - req-4e2fa7c6-8e70-4a26-9d0d-a3fea0389f25 Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 6e60dc20-a85d-439a-80c8-fda70774c69a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-57fdaf7a-a5cb-4911-8c20-6ac6c0b472fe Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-57fdaf7a-a5cb-4911-8c20-6ac6c0b472fe Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6e60dc20-a85d-439a-80c8-fda70774c69a body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-0c10ee43-cf1b-4b84-a935-bf7170e1a266 X-Openstack-Request-Id: - req-0c10ee43-cf1b-4b84-a935-bf7170e1a266 Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 6e60dc20-a85d-439a-80c8-fda70774c69a could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f719c3e0-f0eb-4ba4-89f9-cfd91dafa37b Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-f719c3e0-f0eb-4ba4-89f9-cfd91dafa37b Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:18:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0fe7b5f1-fa7e-444e-aa60-6817e80a774b Content-Type: - application/json Content-Length: - '561' X-Openstack-Request-Id: - req-0fe7b5f1-fa7e-444e-aa60-6817e80a774b Date: - Tue, 03 May 2016 14:18:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ca370da3-7357-4529-9dcc-679d5a071957 Content-Type: - application/json Content-Length: - '561' X-Openstack-Request-Id: - req-ca370da3-7357-4529-9dcc-679d5a071957 Date: - Tue, 03 May 2016 14:18:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:34 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-f865ae7a-9a7d-47cc-80b2-f529fbeb9951 Date: - Tue, 03 May 2016 14:18:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:18:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-07eb640e-4edd-4ce9-8d8c-b30b28e72bf5 Content-Type: - application/json Content-Length: - '560' X-Openstack-Request-Id: - req-07eb640e-4edd-4ce9-8d8c-b30b28e72bf5 Date: - Tue, 03 May 2016 14:18:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-87158c4e-ff49-4731-b97c-c108e44ac26e Content-Type: - application/json Content-Length: - '560' X-Openstack-Request-Id: - req-87158c4e-ff49-4731-b97c-c108e44ac26e Date: - Tue, 03 May 2016 14:18:36 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "deleting", "display_name": "fog-testvolume-1", "attachments": [], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:18:28.000000", "multiattach": "false", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "os-volume-replication:driver_data": null, "display_description": null, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "42a23191-d56f-4235-8d95-3d3f69de3d67", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:18:36 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d/volumes/42a23191-d56f-4235-8d95-3d3f69de3d67 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - afdc13ad24984611903ea1bb613f5677 response: status: code: 404 message: '' headers: Content-Length: - '78' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-3679fd45-3fc3-4f3f-86c9-9bf1cd2ec94f X-Openstack-Request-Id: - req-3679fd45-3fc3-4f3f-86c9-9bf1cd2ec94f Date: - Tue, 03 May 2016 14:18:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "The resource could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:18:38 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v1/volume_type_read.yml000066400000000000000000000077121476630434000270710ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/types body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-947889ad-c72e-4a9b-9107-3c00cc7ab5e6 Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-947889ad-c72e-4a9b-9107-3c00cc7ab5e6 Date: - Tue, 03 May 2016 14:18:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:18:04 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/types/326e2b0b-3776-49a5-b26d-4de79ac659ed body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0341eae8-b4a3-4989-8113-4ead95720435 Content-Type: - application/json Content-Length: - '222' X-Openstack-Request-Id: - req-0341eae8-b4a3-4989-8113-4ead95720435 Date: - Tue, 03 May 2016 14:18:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_type": {"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}}' http_version: recorded_at: Tue, 03 May 2016 14:18:04 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8/types?lvmdriver-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 4ad21ad4ecd84202a848cb0f6e3b85f2 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-08710539-db12-4ea1-a6e5-94335b84ddee Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-08710539-db12-4ea1-a6e5-94335b84ddee Date: - Tue, 03 May 2016 14:18:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:18:04 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/000077500000000000000000000000001476630434000227755ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/common_setup.yml000066400000000000000000000437021476630434000262360ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"admin","domain":{"name":"Default"},"password":"password"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:21:20 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - e5ad23046e5344138b35632dcba9e99b Vary: - X-Auth-Token X-Openstack-Request-Id: - req-90089a7c-2f76-4820-b019-526adfbd0a73 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T15:21:21.043888Z", "catalog": [{"endpoints": [ {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"},{"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [ {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["MEijdNGQQxWAfU2QVIgrog"], "issued_at": "2016-05-03T14:21:21.043966Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:21 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - e5ad23046e5344138b35632dcba9e99b response: status: code: 200 message: '' headers: Date: - Tue, 03 May 2016 14:21:21 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-f15fe9c5-9a2e-41e7-948f-38922b7b9e23 Content-Length: - '1271' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/205e0e39a2534743b517ed0aa2fbcda7/projects", "previous": null, "next": null}, "projects": [{"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/2ab82e30d7984631874def67813dffd8"}, "enabled": true, "id": "2ab82e30d7984631874def67813dffd8", "parent_id": null, "domain_id": "default", "name": "service"}, {"is_domain": false, "description": "Monasca self-monitoring project", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/650778a984b040d2bc7acd45d9e7940f"}, "enabled": true, "id": "650778a984b040d2bc7acd45d9e7940f", "parent_id": null, "domain_id": "36ba5b83865d482296b6d0682e983d77", "name": "service"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/a5db6ff5a6274dd589b6a05945d7f34d"}, "enabled": true, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "parent_id": null, "domain_id": "default", "name": "demo"}, {"is_domain": false, "description": "", "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/f17a4813648d4b0bb82124ca1f5f1fd0"}, "enabled": true, "id": "f17a4813648d4b0bb82124ca1f5f1fd0", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:21 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"e5ad23046e5344138b35632dcba9e99b"}},"scope":{"project":{"id":"2ab82e30d7984631874def67813dffd8"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:21:21 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - db432efab394459183de8a37e7b67939 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-989607b6-b998-403f-8bda-5c4fc0c01937 Content-Length: - '7407' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}, {"id": "d46ad249d4dd40eb840d20ec917d682e", "name": "ResellerAdmin"}], "expires_at": "2016-05-03T15:21:21.043888Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2ab82e30d7984631874def67813dffd8", "name": "service"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_2ab82e30d7984631874def67813dffd8", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["6alLvao6R12RiK-Jqyf5Xw", "MEijdNGQQxWAfU2QVIgrog"], "issued_at": "2016-05-03T14:21:21.540436Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:21 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_crud.yml000066400000000000000000001061321476630434000260470ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d4421614-4026-47fa-8faf-cc030f607183 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-d4421614-4026-47fa-8faf-cc030f607183 Date: - Tue, 03 May 2016 14:21:21 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:21 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":"This is the volume description.","size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-49e779a0-edf6-4788-b5ef-f455861b919c Content-Type: - application/json Content-Length: - '829' X-Openstack-Request-Id: - req-49e779a0-edf6-4788-b5ef-f455861b919c Date: - Tue, 03 May 2016 14:21:22 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:21:22.267212", "description": "This is the volume description.", "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:21:22 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e6addcd7-6de2-412d-95f2-b08e65dd4965 Content-Type: - application/json Content-Length: - '1135' X-Openstack-Request-Id: - req-e6addcd7-6de2-412d-95f2-b08e65dd4965 Date: - Tue, 03 May 2016 14:21:22 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:22 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-38adee17-87c5-4941-8d59-8b99e1aa6d97 Content-Type: - application/json Content-Length: - '1132' X-Openstack-Request-Id: - req-38adee17-87c5-4941-8d59-8b99e1aa6d97 Date: - Tue, 03 May 2016 14:21:22 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:23 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-25625369-8edd-4de0-872b-78ef6ca81b00 Content-Type: - application/json Content-Length: - '1132' X-Openstack-Request-Id: - req-25625369-8edd-4de0-872b-78ef6ca81b00 Date: - Tue, 03 May 2016 14:21:23 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:23 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-535ff75f-02cb-4e40-86f5-3d555bd6ee32 Content-Type: - application/json Content-Length: - '1133' X-Openstack-Request-Id: - req-535ff75f-02cb-4e40-86f5-3d555bd6ee32 Date: - Tue, 03 May 2016 14:21:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:24 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-11662fb0-1d22-4456-9afc-1b9c3c990b0c Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-11662fb0-1d22-4456-9afc-1b9c3c990b0c Date: - Tue, 03 May 2016 14:21:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:24 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: UTF-8 string: '{"volume":{"name":"fog-updated-testvolume-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d06fb687-1c6c-4369-be21-9523963e5db3 Content-Type: - application/json Content-Length: - '838' X-Openstack-Request-Id: - req-d06fb687-1c6c-4369-be21-9523963e5db3 Date: - Tue, 03 May 2016 14:21:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:21:22.000000", "description": "This is the volume description.", "volume_type": "lvmdriver-1", "name": "fog-updated-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:21:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-updated-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-07a185c8-4e99-4eea-98b1-65973bd4a32c Content-Type: - application/json Content-Length: - '1144' X-Openstack-Request-Id: - req-07a185c8-4e99-4eea-98b1-65973bd4a32c Date: - Tue, 03 May 2016 14:21:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": [{"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:25 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: UTF-8 string: '{"volume":{"metadata":{},"description":"This is the updated volume description.","name":"fog-updated-testvolume-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-faa4cd9e-9bca-4b93-afdb-e0f72fd10dc9 Content-Type: - application/json Content-Length: - '846' X-Openstack-Request-Id: - req-faa4cd9e-9bca-4b93-afdb-e0f72fd10dc9 Date: - Tue, 03 May 2016 14:21:26 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "available", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:21:22.000000", "description": "This is the updated volume description.", "volume_type": "lvmdriver-1", "name": "fog-updated-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:21:26 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d98605bb-69bd-4351-a5d9-33cb285b5194 Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-d98605bb-69bd-4351-a5d9-33cb285b5194 Date: - Tue, 03 May 2016 14:21:26 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:26 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-de4a4bf2-2f0a-404b-b4d1-24ee55fcebcd Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-de4a4bf2-2f0a-404b-b4d1-24ee55fcebcd Date: - Tue, 03 May 2016 14:21:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9def48de-b743-4975-a6f8-d86b3f3e608a Content-Type: - application/json Content-Length: - '1149' X-Openstack-Request-Id: - req-9def48de-b743-4975-a6f8-d86b3f3e608a Date: - Tue, 03 May 2016 14:21:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:27 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-4f9a2c67-3471-47c2-a0c6-f097f4bc378b Date: - Tue, 03 May 2016 14:21:27 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:21:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-612820b9-928a-4157-b64f-02bc60bc8879 Content-Type: - application/json Content-Length: - '1148' X-Openstack-Request-Id: - req-612820b9-928a-4157-b64f-02bc60bc8879 Date: - Tue, 03 May 2016 14:21:28 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:28 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-efec7f3f-42a7-4840-a56e-99886745cf14 Content-Type: - application/json Content-Length: - '1148' X-Openstack-Request-Id: - req-efec7f3f-42a7-4840-a56e-99886745cf14 Date: - Tue, 03 May 2016 14:21:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": "This is the updated volume description.", "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-updated-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:22.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:29 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-7874dfc6-2eb3-4f99-a1e3-fcf286110f9b X-Openstack-Request-Id: - req-7874dfc6-2eb3-4f99-a1e3-fcf286110f9b Date: - Tue, 03 May 2016 14:21:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume b1c8ab26-71c4-4ccc-a06c-99e94d6c7b11 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_extend.yml000066400000000000000000000730121476630434000264010ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-aa846d05-dedd-4cc2-a4b0-9fe239c8cf1b Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-aa846d05-dedd-4cc2-a4b0-9fe239c8cf1b Date: - Tue, 03 May 2016 14:21:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-9179a375-321b-47aa-9022-7bd27c0e888a Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-9179a375-321b-47aa-9022-7bd27c0e888a Date: - Tue, 03 May 2016 14:21:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:21:32.751257", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-991b63dd-9131-443d-97ca-550f152ff446 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-991b63dd-9131-443d-97ca-550f152ff446 Date: - Tue, 03 May 2016 14:21:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-34840201-08bb-4754-b9fe-070348fb8738 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-34840201-08bb-4754-b9fe-070348fb8738 Date: - Tue, 03 May 2016 14:21:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:34 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":2}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-9c58a0ad-fede-4e06-b916-ad1a1839fac5 Date: - Tue, 03 May 2016 14:21:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:21:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c41369c4-62bc-4ac6-b968-36730d70503c Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-c41369c4-62bc-4ac6-b968-36730d70503c Date: - Tue, 03 May 2016 14:21:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "extending", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1fe5e0aa-4336-4181-af5a-844c0e3c4d24 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-1fe5e0aa-4336-4181-af5a-844c0e3c4d24 Date: - Tue, 03 May 2016 14:21:36 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:36 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 400 message: '' headers: Content-Length: - '149' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-da5df831-ee3a-4ce0-8d25-328f11e9b762 X-Openstack-Request-Id: - req-da5df831-ee3a-4ce0-8d25-328f11e9b762 Date: - Tue, 03 May 2016 14:21:37 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid input received: New size for extend must be greater than current size. (current: 2, extended: 1).", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:21:37 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9ef70bc6-28eb-4e6f-9029-e96c017e733d Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-9ef70bc6-28eb-4e6f-9029-e96c017e733d Date: - Tue, 03 May 2016 14:21:37 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:37 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-95c25e02-b970-4d9a-a53e-734e28f1101c Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-95c25e02-b970-4d9a-a53e-734e28f1101c Date: - Tue, 03 May 2016 14:21:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:38 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-25299c42-5c6a-45aa-809b-56d8cc45cef3 Date: - Tue, 03 May 2016 14:21:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:21:38 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c83dddff-6246-46a0-9d04-f2f6d147de45 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-c83dddff-6246-46a0-9d04-f2f6d147de45 Date: - Tue, 03 May 2016 14:21:38 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:38 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-06b72038-af15-4f72-b700-f5ffcf619eac Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-06b72038-af15-4f72-b700-f5ffcf619eac Date: - Tue, 03 May 2016 14:21:40 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:40 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9bd733af-2e28-4b69-ae6e-b8e758181476 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-9bd733af-2e28-4b69-ae6e-b8e758181476 Date: - Tue, 03 May 2016 14:21:42 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "fdca4a18-01c4-4482-b85e-d74e8350b53c", "size": 2, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:32.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:42 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-a7f2fa30-b004-4fd7-8057-d11c7495daeb X-Openstack-Request-Id: - req-a7f2fa30-b004-4fd7-8057-d11c7495daeb Date: - Tue, 03 May 2016 14:21:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume fdca4a18-01c4-4482-b85e-d74e8350b53c could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:46 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/fdca4a18-01c4-4482-b85e-d74e8350b53c/action body: encoding: UTF-8 string: '{"os-extend":{"new_size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-a7275c23-8afd-45a7-8e7d-5a592c53d02e X-Openstack-Request-Id: - req-a7275c23-8afd-45a7-8e7d-5a592c53d02e Date: - Tue, 03 May 2016 14:21:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume fdca4a18-01c4-4482-b85e-d74e8350b53c could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:47 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_metadata_crud.yml000066400000000000000000001055501476630434000277120ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a44fee1f-b0f6-44f4-8d25-87f02924cbe2 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-a44fee1f-b0f6-44f4-8d25-87f02924cbe2 Date: - Tue, 03 May 2016 14:22:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:29 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-142c6e39-2cc4-4d0b-97b5-d8b58f18230b Content-Type: - application/json Content-Length: - '866' X-Openstack-Request-Id: - req-142c6e39-2cc4-4d0b-97b5-d8b58f18230b Date: - Tue, 03 May 2016 14:22:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:22:29.609069", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:22:29 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-2ee22359-d5bf-4609-a9f6-370aaf1c8002 Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-2ee22359-d5bf-4609-a9f6-370aaf1c8002 Date: - Tue, 03 May 2016 14:22:30 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:30 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-cf2d08f6-af0a-4f50-8386-268f1f06e77c Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-cf2d08f6-af0a-4f50-8386-268f1f06e77c Date: - Tue, 03 May 2016 14:22:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:31 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-59336a12-f6dc-493d-8383-f72a607fce4c Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-59336a12-f6dc-493d-8383-f72a607fce4c Date: - Tue, 03 May 2016 14:22:31 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:32 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated","new_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-84e6fc41-eddd-4fa7-b834-fa4c2d26b791 Content-Type: - application/json Content-Length: - '116' X-Openstack-Request-Id: - req-84e6fc41-eddd-4fa7-b834-fa4c2d26b791 Date: - Tue, 03 May 2016 14:22:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e70e768a-97ff-40f8-953e-29a4e7fd920e Content-Type: - application/json Content-Length: - '1204' X-Openstack-Request-Id: - req-e70e768a-97ff-40f8-953e-29a4e7fd920e Date: - Tue, 03 May 2016 14:22:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is updated", "new_metadata": "this is new"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:33 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854/metadata body: encoding: UTF-8 string: '{"metadata":{"some_metadata":"this is updated again","newer_metadata":"this is newer"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e75d072e-dcdf-4dfc-b27e-a234964f1f58 Content-Type: - application/json Content-Length: - '91' X-Openstack-Request-Id: - req-e75d072e-dcdf-4dfc-b27e-a234964f1f58 Date: - Tue, 03 May 2016 14:22:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:33 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-dca70384-3403-4b25-a8ad-295783178842 Content-Type: - application/json Content-Length: - '1179' X-Openstack-Request-Id: - req-dca70384-3403-4b25-a8ad-295783178842 Date: - Tue, 03 May 2016 14:22:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer", "some_metadata": "this is updated again"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:33 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854/metadata/some_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-397a1e72-f965-413f-85b4-c841c2a0f0a0 Date: - Tue, 03 May 2016 14:22:33 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-8f25ffa5-a43a-4d4a-b284-89b47deaff36 Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-8f25ffa5-a43a-4d4a-b284-89b47deaff36 Date: - Tue, 03 May 2016 14:22:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-620585a6-cac1-4802-85fc-a73d8cba0046 Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-620585a6-cac1-4802-85fc-a73d8cba0046 Date: - Tue, 03 May 2016 14:22:34 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:34 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f882fbe5-5f64-474b-b360-22a2c0f1e6af Content-Type: - application/json Content-Length: - '1137' X-Openstack-Request-Id: - req-f882fbe5-5f64-474b-b360-22a2c0f1e6af Date: - Tue, 03 May 2016 14:22:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:35 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-40bf4641-b5f3-4e3f-a669-3911575aab58 Date: - Tue, 03 May 2016 14:22:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d99aad2c-d9dd-4535-ae9d-0f3330a17cde Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-d99aad2c-d9dd-4535-ae9d-0f3330a17cde Date: - Tue, 03 May 2016 14:22:35 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:35 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1461609b-1847-4337-ac44-794f84c07854 Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-1461609b-1847-4337-ac44-794f84c07854 Date: - Tue, 03 May 2016 14:22:37 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:37 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-03958b91-9911-4458-8fe8-05621ea606c4 Content-Type: - application/json Content-Length: - '1136' X-Openstack-Request-Id: - req-03958b91-9911-4458-8fe8-05621ea606c4 Date: - Tue, 03 May 2016 14:22:39 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "5c464852-2c68-47a4-9641-bcf53cf2f854", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"newer_metadata": "this is newer"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:29.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:39 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/5c464852-2c68-47a4-9641-bcf53cf2f854 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-dda654cf-0a35-43bc-bd7f-524e6eb58107 X-Openstack-Request-Id: - req-dda654cf-0a35-43bc-bd7f-524e6eb58107 Date: - Tue, 03 May 2016 14:22:43 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 5c464852-2c68-47a4-9641-bcf53cf2f854 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:44 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_snapshot_and_delete.yml000066400000000000000000001072311476630434000311160ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-34950f0e-921a-4cdf-9f4c-f67fe60c5f00 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-34950f0e-921a-4cdf-9f4c-f67fe60c5f00 Date: - Tue, 03 May 2016 14:22:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:11 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-3614ed10-d23d-4e4f-b286-b2679ff84db8 Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-3614ed10-d23d-4e4f-b286-b2679ff84db8 Date: - Tue, 03 May 2016 14:22:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:22:11.779477", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:22:12 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9d1b342d-69d9-4cfb-81cf-4754544ffa9b Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-9d1b342d-69d9-4cfb-81cf-4754544ffa9b Date: - Tue, 03 May 2016 14:22:12 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:12 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-9f1975cb-f82c-49fd-90c9-714c2804c41d Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-9f1975cb-f82c-49fd-90c9-714c2804c41d Date: - Tue, 03 May 2016 14:22:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:13 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/detail?name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-75045c00-e51e-4048-875d-a2ba4a07dd3e Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-75045c00-e51e-4048-875d-a2ba4a07dd3e Date: - Tue, 03 May 2016 14:22:13 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:13 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"980df48c-20a2-43a1-ae75-658fcba3aae8","name":"fog-testsnapshot-1","description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-01b0920f-3d0f-4798-a114-b07f82ed1006 Content-Type: - application/json Content-Length: - '268' X-Openstack-Request-Id: - req-01b0920f-3d0f-4798-a114-b07f82ed1006 Date: - Tue, 03 May 2016 14:22:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "created_at": "2016-05-03T14:22:14.250787", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:14 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7ed7b9d5-ceaa-43f5-86e6-a98a245bce32 Content-Type: - application/json Content-Length: - '400' X-Openstack-Request-Id: - req-7ed7b9d5-ceaa-43f5-86e6-a98a245bce32 Date: - Tue, 03 May 2016 14:22:14 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "os-extended-snapshot-attributes:progress": "0%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:14 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-22162744-5c69-4829-afe1-585319b6e72e Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-22162744-5c69-4829-afe1-585319b6e72e Date: - Tue, 03 May 2016 14:22:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:15 GMT - request: method: put uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: UTF-8 string: '{"snapshot":{"description":"Updated description"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-2b4c7ac8-2bed-45f1-bb60-8369f00826d3 Content-Type: - application/json Content-Length: - '275' X-Openstack-Request-Id: - req-2b4c7ac8-2bed-45f1-bb60-8369f00826d3 Date: - Tue, 03 May 2016 14:22:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:15 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-77452324-6b38-4c24-94bd-bc2a54b4aa98 Content-Type: - application/json Content-Length: - '409' X-Openstack-Request-Id: - req-77452324-6b38-4c24-94bd-bc2a54b4aa98 Date: - Tue, 03 May 2016 14:22:15 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:16 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-f109e279-23c6-4a8e-9185-6e0429004e05 Date: - Tue, 03 May 2016 14:22:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3538495a-978b-4864-b32a-926f3691d443 Content-Type: - application/json Content-Length: - '408' X-Openstack-Request-Id: - req-3538495a-978b-4864-b32a-926f3691d443 Date: - Tue, 03 May 2016 14:22:16 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:16 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-722fa100-411b-483a-bde4-0ed2f0b6002d Content-Type: - application/json Content-Length: - '408' X-Openstack-Request-Id: - req-722fa100-411b-483a-bde4-0ed2f0b6002d Date: - Tue, 03 May 2016 14:22:17 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:17 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f758e9b5-06ca-4ae5-8072-274d4b55243b Content-Type: - application/json Content-Length: - '408' X-Openstack-Request-Id: - req-f758e9b5-06ca-4ae5-8072-274d4b55243b Date: - Tue, 03 May 2016 14:22:19 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:14.000000", "size": 1, "id": "588aaedd-e76f-43df-a151-4afe6f959f44", "description": "Updated description"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:19 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-0eaa36fc-6b23-4361-a385-aa9ff34a0062 X-Openstack-Request-Id: - req-0eaa36fc-6b23-4361-a385-aa9ff34a0062 Date: - Tue, 03 May 2016 14:22:23 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot 588aaedd-e76f-43df-a151-4afe6f959f44 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:23 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/588aaedd-e76f-43df-a151-4afe6f959f44 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-065d0915-4e34-4a63-82c7-e202c195eef2 X-Openstack-Request-Id: - req-065d0915-4e34-4a63-82c7-e202c195eef2 Date: - Tue, 03 May 2016 14:22:23 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot 588aaedd-e76f-43df-a151-4afe6f959f44 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:24 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1b021759-44e6-4b85-a3d3-e1d436305c07 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-1b021759-44e6-4b85-a3d3-e1d436305c07 Date: - Tue, 03 May 2016 14:22:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:24 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6dafdc8f-1399-4387-b6ed-c03ff76b1804 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-6dafdc8f-1399-4387-b6ed-c03ff76b1804 Date: - Tue, 03 May 2016 14:22:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:24 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-eedcf086-6fe5-484a-bec3-653abb208941 Date: - Tue, 03 May 2016 14:22:24 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c28c1ad9-1c6f-4049-b6c9-fcea68e67fde Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-c28c1ad9-1c6f-4049-b6c9-fcea68e67fde Date: - Tue, 03 May 2016 14:22:25 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:25 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-e7080355-de7a-4249-8bae-e06716858d9a Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-e7080355-de7a-4249-8bae-e06716858d9a Date: - Tue, 03 May 2016 14:22:26 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "980df48c-20a2-43a1-ae75-658fcba3aae8", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:11.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:27 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/980df48c-20a2-43a1-ae75-658fcba3aae8 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-ac86c998-8a49-49af-9167-1addcb2cd7dc X-Openstack-Request-Id: - req-ac86c998-8a49-49af-9167-1addcb2cd7dc Date: - Tue, 03 May 2016 14:22:29 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume 980df48c-20a2-43a1-ae75-658fcba3aae8 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:29 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_snapshot_metadata_crud.yml000066400000000000000000001244571476630434000316400ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-cc87cab5-6a7b-4a3d-9505-f8a87f3028fe Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-cc87cab5-6a7b-4a3d-9505-f8a87f3028fe Date: - Tue, 03 May 2016 14:22:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:44 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1,"metadata":{"some_metadata":"this is meta","more_metadata":"even more meta"}}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-08318ec9-58cf-4e0c-b199-6f7b6333ab8d Content-Type: - application/json Content-Length: - '866' X-Openstack-Request-Id: - req-08318ec9-58cf-4e0c-b199-6f7b6333ab8d Date: - Tue, 03 May 2016 14:22:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:22:44.439613", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:22:44 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0b416990-f873-4215-89ff-13871c83aa65 Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-0b416990-f873-4215-89ff-13871c83aa65 Date: - Tue, 03 May 2016 14:22:44 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:45 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-0bd2767a-a2ad-423d-8970-2214afeaad08 Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-0bd2767a-a2ad-423d-8970-2214afeaad08 Date: - Tue, 03 May 2016 14:22:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:46 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/detail?name=fog-testsnapshot-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-dfe80cf7-3a0a-40f8-83df-f81c62acebbe Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-dfe80cf7-3a0a-40f8-83df-f81c62acebbe Date: - Tue, 03 May 2016 14:22:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshots": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:46 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots body: encoding: UTF-8 string: '{"snapshot":{"volume_id":"f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9","name":"fog-testsnapshot-1","description":"Test snapshot","force":false}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-196d1812-acaf-4264-91fc-71abe5b0123d Content-Type: - application/json Content-Length: - '268' X-Openstack-Request-Id: - req-196d1812-acaf-4264-91fc-71abe5b0123d Date: - Tue, 03 May 2016 14:22:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "created_at": "2016-05-03T14:22:46.684286", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:46 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7f1174de-74bf-49b6-8c90-dcad2d5779a8 Content-Type: - application/json Content-Length: - '400' X-Openstack-Request-Id: - req-7f1174de-74bf-49b6-8c90-dcad2d5779a8 Date: - Tue, 03 May 2016 14:22:46 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "creating", "metadata": {}, "os-extended-snapshot-attributes:progress": "0%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:46 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a13a98b5-d4fb-4794-9d6e-20e82f7b925f Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-a13a98b5-d4fb-4794-9d6e-20e82f7b925f Date: - Tue, 03 May 2016 14:22:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1b7b988f-c12e-4ea3-97e9-8b5c0d34a9a9 Content-Type: - application/json Content-Length: - '403' X-Openstack-Request-Id: - req-1b7b988f-c12e-4ea3-97e9-8b5c0d34a9a9 Date: - Tue, 03 May 2016 14:22:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:48 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c/metadata body: encoding: UTF-8 string: '{"metadata":{"some_snapshot_metadata":"this is data","new_snapshot_metadata":"this is new"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-15b6addd-d3ad-46c3-a135-e7e124e433cd Content-Type: - application/json Content-Length: - '96' X-Openstack-Request-Id: - req-15b6addd-d3ad-46c3-a135-e7e124e433cd Date: - Tue, 03 May 2016 14:22:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-38932b4b-71fe-4bec-a436-e9d5d2f27dc1 Content-Type: - application/json Content-Length: - '483' X-Openstack-Request-Id: - req-38932b4b-71fe-4bec-a436-e9d5d2f27dc1 Date: - Tue, 03 May 2016 14:22:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new", "some_snapshot_metadata": "this is data"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:48 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c/metadata/some_snapshot_metadata body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-5191f3c5-bf97-4a0f-880e-9a48246273a9 Date: - Tue, 03 May 2016 14:22:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f4df7f95-7556-4a46-89bd-efec16fed46b Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-f4df7f95-7556-4a46-89bd-efec16fed46b Date: - Tue, 03 May 2016 14:22:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5c3c7d41-65a6-4910-a0d7-a9840fefb607 Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-5c3c7d41-65a6-4910-a0d7-a9840fefb607 Date: - Tue, 03 May 2016 14:22:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-7de93a16-9ecd-4be5-87b9-13308a84b343 Content-Type: - application/json Content-Length: - '441' X-Openstack-Request-Id: - req-7de93a16-9ecd-4be5-87b9-13308a84b343 Date: - Tue, 03 May 2016 14:22:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "available", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:49 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-1e814a7f-7f05-41c2-8e90-ab462278f228 Date: - Tue, 03 May 2016 14:22:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-61ef0708-00dc-48e9-98f9-cd612012eca1 Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-61ef0708-00dc-48e9-98f9-cd612012eca1 Date: - Tue, 03 May 2016 14:22:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-01a4ce48-ca85-4317-b50b-363384115e6f Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-01a4ce48-ca85-4317-b50b-363384115e6f Date: - Tue, 03 May 2016 14:22:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-1c169b29-9b7a-4dfb-8689-f8d533973605 Content-Type: - application/json Content-Length: - '440' X-Openstack-Request-Id: - req-1c169b29-9b7a-4dfb-8689-f8d533973605 Date: - Tue, 03 May 2016 14:22:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"snapshot": {"status": "deleting", "metadata": {"new_snapshot_metadata": "this is new"}, "os-extended-snapshot-attributes:progress": "100%", "name": "fog-testsnapshot-1", "volume_id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "os-extended-snapshot-attributes:project_id": "2ab82e30d7984631874def67813dffd8", "created_at": "2016-05-03T14:22:46.000000", "size": 1, "id": "9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c", "description": "Test snapshot"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/snapshots/9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-7ec26090-7d91-4d9b-9425-f944815f73c1 X-Openstack-Request-Id: - req-7ec26090-7d91-4d9b-9425-f944815f73c1 Date: - Tue, 03 May 2016 14:22:56 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Snapshot 9f5ab74d-b2b1-42ec-ab51-6981f9ebd40c could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c7655b06-1c9f-4e92-a106-57a9573d96fe Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-c7655b06-1c9f-4e92-a106-57a9573d96fe Date: - Tue, 03 May 2016 14:22:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-649cc3c9-5359-40a3-95ae-350b5825351f Content-Type: - application/json Content-Length: - '1170' X-Openstack-Request-Id: - req-649cc3c9-5359-40a3-95ae-350b5825351f Date: - Tue, 03 May 2016 14:22:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:57 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-500d5b21-828d-46ed-9cb9-f61cd7058cc9 Date: - Tue, 03 May 2016 14:22:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:58 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-3b03e8a0-ff64-44e4-b97b-5c60de2ef589 Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-3b03e8a0-ff64-44e4-b97b-5c60de2ef589 Date: - Tue, 03 May 2016 14:22:58 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:58 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-86327796-60bc-4f29-8909-5257192de060 Content-Type: - application/json Content-Length: - '1169' X-Openstack-Request-Id: - req-86327796-60bc-4f29-8909-5257192de060 Date: - Tue, 03 May 2016 14:22:59 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {"more_metadata": "even more meta", "some_metadata": "this is meta"}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:44.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:59 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-4d4b759f-c662-4fff-9741-8b6fd0c22326 X-Openstack-Request-Id: - req-4d4b759f-c662-4fff-9741-8b6fd0c22326 Date: - Tue, 03 May 2016 14:23:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume f13a94bf-f4ac-4cb1-ac1d-920ba646d7b9 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:23:02 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_transfer_and_accept.yml000066400000000000000000001415351476630434000311050ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-ad510add-1109-4353-83d7-b20e73c050da Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-ad510add-1109-4353-83d7-b20e73c050da Date: - Tue, 03 May 2016 14:21:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:47 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-7874ee3a-f4f1-48a7-9851-c849a109fc0d Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-7874ee3a-f4f1-48a7-9851-c849a109fc0d Date: - Tue, 03 May 2016 14:21:47 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:21:47.512411", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:21:47 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-57c40bae-67fe-4a16-bfdb-288cab05b77f Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-57c40bae-67fe-4a16-bfdb-288cab05b77f Date: - Tue, 03 May 2016 14:21:48 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:48 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a6699cca-7c33-4b45-bc5d-bbcfbe326df6 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-a6699cca-7c33-4b45-bc5d-bbcfbe326df6 Date: - Tue, 03 May 2016 14:21:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:49 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-d1b6cc91-4169-4b3f-9f14-11c12bf90c1c Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-d1b6cc91-4169-4b3f-9f14-11c12bf90c1c Date: - Tue, 03 May 2016 14:21:49 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:49 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer body: encoding: UTF-8 string: '{"transfer":{"volume_id":"ba63f1f8-39b6-4207-a605-4d4cfcd7ae75","name":"fog-testtransfer-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-fbe13348-2986-4750-900a-ca0b1320c693 Content-Type: - application/json Content-Length: - '521' X-Openstack-Request-Id: - req-fbe13348-2986-4750-900a-ca0b1320c693 Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"auth_key": "a8faf3cf9a1437b1", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "bookmark"}], "created_at": "2016-05-03T14:21:49.945270", "volume_id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "id": "25ce8e00-36e5-447d-9a5c-93b778e855fe", "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6eb57875-4cb8-41bf-bdad-5acbdffe391d Content-Type: - application/json Content-Length: - '489' X-Openstack-Request-Id: - req-6eb57875-4cb8-41bf-bdad-5acbdffe391d Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"created_at": "2016-05-03T14:21:49.000000", "volume_id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "id": "25ce8e00-36e5-447d-9a5c-93b778e855fe", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "bookmark"}], "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-c989f83b-5f6f-4680-829f-3a2e08a1f795 Content-Type: - application/json Content-Length: - '492' X-Openstack-Request-Id: - req-c989f83b-5f6f-4680-829f-3a2e08a1f795 Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": [{"created_at": "2016-05-03T14:21:49.000000", "volume_id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "id": "25ce8e00-36e5-447d-9a5c-93b778e855fe", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "bookmark"}], "name": "fog-testtransfer-1"}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"demo","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"demo","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:21:50 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 7a8721ece0c24548b5342f549849febd Vary: - X-Auth-Token X-Openstack-Request-Id: - req-1107801a-3ff2-4cb3-8af0-fcadb845f121 Content-Length: - '7367' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d97660751404495ab8c405826d547c16", "name": "Member"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "name": "anotherrole"}], "expires_at": "2016-05-03T15:21:50.551883Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "d66fbe28f45a405a87fd32bb30f7c42e", "name": "demo"}, "audit_ids": ["Iz4MtjrGSw2GGH3EFCEOsQ"], "issued_at": "2016-05-03T14:21:50.551942Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-b0eb0b59-db18-43a1-be98-e26f6934ad94 X-Openstack-Request-Id: - req-b0eb0b59-db18-43a1-be98-e26f6934ad94 Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 25ce8e00-36e5-447d-9a5c-93b778e855fe could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-970f2960-3d0c-4ad0-80c0-5fd0a75f83a6 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-970f2960-3d0c-4ad0-80c0-5fd0a75f83a6 Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:50 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"a8faf3cf9a1437b1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 404 message: '' headers: Content-Length: - '129' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-752c9b02-7066-4d07-a5a7-cc932e730718 X-Openstack-Request-Id: - req-752c9b02-7066-4d07-a5a7-cc932e730718 Date: - Tue, 03 May 2016 14:21:50 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "TransferNotFound: Transfer ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:51 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"invalidauthkey"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 400 message: '' headers: Content-Length: - '141' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-87cb99a0-4c59-4b74-a9f4-64446bd8c6cd X-Openstack-Request-Id: - req-87cb99a0-4c59-4b74-a9f4-64446bd8c6cd Date: - Tue, 03 May 2016 14:21:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"badRequest": {"message": "Invalid auth key: Attempt to transfer 25ce8e00-36e5-447d-9a5c-93b778e855fe with invalid auth key.", "code": 400}}' http_version: recorded_at: Tue, 03 May 2016 14:21:51 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"a8faf3cf9a1437b1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-a0ab9c20-f78b-4aa4-ac91-8eac224fc1ff Content-Type: - application/json Content-Length: - '445' X-Openstack-Request-Id: - req-a0ab9c20-f78b-4aa4-ac91-8eac224fc1ff Date: - Tue, 03 May 2016 14:21:51 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe", "rel": "bookmark"}], "id": "25ce8e00-36e5-447d-9a5c-93b778e855fe", "name": "fog-testtransfer-1", "volume_id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:51 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-db2f552b-0ccd-4794-ab71-fcb7ffb8d38a Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-db2f552b-0ccd-4794-ab71-fcb7ffb8d38a Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-d9d73f49-defe-4d00-a53e-0a399a54bcbc X-Openstack-Request-Id: - req-d9d73f49-defe-4d00-a53e-0a399a54bcbc Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 25ce8e00-36e5-447d-9a5c-93b778e855fe could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-648db9d0-57ed-41dd-b9e4-fcd8e78c83d3 Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-648db9d0-57ed-41dd-b9e4-fcd8e78c83d3 Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/25ce8e00-36e5-447d-9a5c-93b778e855fe body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 404 message: '' headers: Content-Length: - '111' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-e5f59862-453e-4ddd-9b2d-531ef6f2aa1c X-Openstack-Request-Id: - req-e5f59862-453e-4ddd-9b2d-531ef6f2aa1c Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Transfer 25ce8e00-36e5-447d-9a5c-93b778e855fe could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:21:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-585d5e5a-dd8d-41fd-b1ff-1d665e0109ba Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-585d5e5a-dd8d-41fd-b1ff-1d665e0109ba Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:21:52 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f2e05ebf-b1eb-455d-8046-95b8177bd395 Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-f2e05ebf-b1eb-455d-8046-95b8177bd395 Date: - Tue, 03 May 2016 14:21:52 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:53 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-bf1f5592-fadf-4352-8f5f-50ae373db40b Content-Type: - application/json Content-Length: - '933' X-Openstack-Request-Id: - req-bf1f5592-fadf-4352-8f5f-50ae373db40b Date: - Tue, 03 May 2016 14:21:53 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "available", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:53 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-3dc49392-7798-4a7b-960e-374f44650a55 Date: - Tue, 03 May 2016 14:21:53 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:21:53 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-88d8878d-8af9-4d3c-874a-2f01f6713f33 Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-88d8878d-8af9-4d3c-874a-2f01f6713f33 Date: - Tue, 03 May 2016 14:21:53 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:54 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-b21e5288-01f0-487f-bd7d-6a14b3d52790 Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-b21e5288-01f0-487f-bd7d-6a14b3d52790 Date: - Tue, 03 May 2016 14:21:55 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:55 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-a1ab13a5-b375-41f0-9458-91448b5b0cef Content-Type: - application/json Content-Length: - '932' X-Openstack-Request-Id: - req-a1ab13a5-b375-41f0-9458-91448b5b0cef Date: - Tue, 03 May 2016 14:21:57 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "rel": "bookmark"}], "availability_zone": "nova", "encrypted": false, "os-volume-replication:extended_status": null, "volume_type": "lvmdriver-1", "snapshot_id": null, "id": "ba63f1f8-39b6-4207-a605-4d4cfcd7ae75", "size": 1, "user_id": "d66fbe28f45a405a87fd32bb30f7c42e", "os-vol-tenant-attr:tenant_id": "a5db6ff5a6274dd589b6a05945d7f34d", "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "source_volid": null, "consistencygroup_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:21:47.000000", "os-volume-replication:driver_data": null, "replication_status": "disabled"}}' http_version: recorded_at: Tue, 03 May 2016 14:21:57 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/volumes/ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 7a8721ece0c24548b5342f549849febd response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-3102add7-63f3-446d-a06b-17c9676ddf21 X-Openstack-Request-Id: - req-3102add7-63f3-446d-a06b-17c9676ddf21 Date: - Tue, 03 May 2016 14:22:01 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume ba63f1f8-39b6-4207-a605-4d4cfcd7ae75 could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:01 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_transfer_and_delete.yml000066400000000000000000001024761476630434000311110ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/detail?name=fog-testvolume-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fbe427ce-0358-40b5-9a00-bec60374df75 Content-Type: - application/json Content-Length: - '15' X-Openstack-Request-Id: - req-fbe427ce-0358-40b5-9a00-bec60374df75 Date: - Tue, 03 May 2016 14:22:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volumes": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:02 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes body: encoding: UTF-8 string: '{"volume":{"name":"fog-testvolume-1","description":null,"size":1}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-5eebb3f5-9a52-4acd-8a11-e5cc504db3d9 Content-Type: - application/json Content-Length: - '800' X-Openstack-Request-Id: - req-5eebb3f5-9a52-4acd-8a11-e5cc504db3d9 Date: - Tue, 03 May 2016 14:22:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"status": "creating", "migration_status": null, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2016-05-03T14:22:02.490622", "description": null, "volume_type": "lvmdriver-1", "name": "fog-testvolume-1", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "multiattach": false, "metadata": {}, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1}}' http_version: recorded_at: Tue, 03 May 2016 14:22:02 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-43d756fb-187a-426a-9b62-09236b9d31cb Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-43d756fb-187a-426a-9b62-09236b9d31cb Date: - Tue, 03 May 2016 14:22:02 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "creating", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:03 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-48e4f83b-9dc8-4c36-b47b-2d05ffdce67e Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-48e4f83b-9dc8-4c36-b47b-2d05ffdce67e Date: - Tue, 03 May 2016 14:22:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:04 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/detail?name=fog-testtransfer-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6bad71aa-65fb-4b38-8d6d-4d7c72eeff6e Content-Type: - application/json Content-Length: - '17' X-Openstack-Request-Id: - req-6bad71aa-65fb-4b38-8d6d-4d7c72eeff6e Date: - Tue, 03 May 2016 14:22:04 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfers": []}' http_version: recorded_at: Tue, 03 May 2016 14:22:04 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer body: encoding: UTF-8 string: '{"transfer":{"volume_id":"ba81402e-55ff-42cd-ba12-3bce34c1dbcd","name":"fog-testtransfer-1"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: X-Compute-Request-Id: - req-293c5efb-deae-4221-a608-e0a920e3c471 Content-Type: - application/json Content-Length: - '521' X-Openstack-Request-Id: - req-293c5efb-deae-4221-a608-e0a920e3c471 Date: - Tue, 03 May 2016 14:22:05 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"transfer": {"auth_key": "912bdfd291af1d32", "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6d55169a-e4dc-45d8-99c9-6a640105f7af", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6d55169a-e4dc-45d8-99c9-6a640105f7af", "rel": "bookmark"}], "created_at": "2016-05-03T14:22:04.917297", "volume_id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "id": "6d55169a-e4dc-45d8-99c9-6a640105f7af", "name": "fog-testtransfer-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:05 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"demo","domain":{"name":"Default"},"password":"password"}}},"scope":{"project":{"name":"demo","domain":{"name":"Default"}}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 14:22:05 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - b0c103f4e5cd4b1f94efaa1533d0cdf2 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-11e31d96-1a66-4ac2-994c-2db3c512a52b Content-Length: - '7367' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "roles": [{"id": "d97660751404495ab8c405826d547c16", "name": "Member"}, {"id": "eb9f0f3b348042ffa65f9d33e5d72014", "name": "anotherrole"}], "expires_at": "2016-05-03T15:22:05.363286Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "a5db6ff5a6274dd589b6a05945d7f34d", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "0e40a16fd8ad4045ae738b749818818e"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "1ebe166449b34147ac4df07e492571d9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "b2ae2902e8104f05b5fd2def27a4537a"}], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "156ba3bcbd3f4544ad1008159022d7fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "9a532e6593c242698ee0ef4d348147ed"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "f7f1d535541a4c808a8d3747343712a0"}], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "bb95738666b94144802d02b313a3520d"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "d7f48b18a887467ca02c943704dcbd91"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "e81eef3261494c4299a972a8c7bf669e"}], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "admin", "id": "0f962cae636846009772e0bd81c39d49"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "36828cbcbe6843dbace247d1674e924a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "edfc5903d27a42bbb5ebf806ecac3d22"}], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "public", "id": "6531f16841454331908be0fb35dca95a"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090/v1/AUTH_a5db6ff5a6274dd589b6a05945d7f34d", "region": "RegionOne", "interface": "internal", "id": "a5e54f1ba61e4756b55c3f346bcf9219"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "d66fbe28f45a405a87fd32bb30f7c42e", "name": "demo"}, "audit_ids": ["ncT95PyFSCSW3DTap6lfBQ"], "issued_at": "2016-05-03T14:22:05.363375Z"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:05 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/os-volume-transfer/6d55169a-e4dc-45d8-99c9-6a640105f7af body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-8e64740f-0359-43bd-af66-fffb36845904 Date: - Tue, 03 May 2016 14:22:05 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:05 GMT - request: method: post uri: http://devstack.openstack.stack:8776/v2/a5db6ff5a6274dd589b6a05945d7f34d/os-volume-transfer/6d55169a-e4dc-45d8-99c9-6a640105f7af/accept body: encoding: UTF-8 string: '{"accept":{"auth_key":"912bdfd291af1d32"}}' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - b0c103f4e5cd4b1f94efaa1533d0cdf2 response: status: code: 404 message: '' headers: Content-Length: - '129' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-b99d2281-a59b-4493-8c95-23f72b542d9c X-Openstack-Request-Id: - req-b99d2281-a59b-4493-8c95-23f72b542d9c Date: - Tue, 03 May 2016 14:22:06 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "TransferNotFound: Transfer 6d55169a-e4dc-45d8-99c9-6a640105f7af could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:06 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-dfc2ec74-d246-4e57-a6ae-d26d109d2b85 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-dfc2ec74-d246-4e57-a6ae-d26d109d2b85 Date: - Tue, 03 May 2016 14:22:06 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:06 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-820d7362-8baa-4042-809d-9dc2e96e2ae8 Content-Type: - application/json Content-Length: - '1104' X-Openstack-Request-Id: - req-820d7362-8baa-4042-809d-9dc2e96e2ae8 Date: - Tue, 03 May 2016 14:22:06 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "available", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:07 GMT - request: method: delete uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 202 message: '' headers: Content-Type: - text/html; charset=UTF-8 Content-Length: - '0' X-Openstack-Request-Id: - req-92020d8d-4f7f-400c-a8b9-deb178b64a12 Date: - Tue, 03 May 2016 14:22:07 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 03 May 2016 14:22:07 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-418ba9f9-7226-4eb6-a160-ddb060d140ee Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-418ba9f9-7226-4eb6-a160-ddb060d140ee Date: - Tue, 03 May 2016 14:22:07 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:07 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-f0e2f70b-dd93-47d8-9e4d-6ef4be213fd8 Content-Type: - application/json Content-Length: - '1103' X-Openstack-Request-Id: - req-f0e2f70b-dd93-47d8-9e4d-6ef4be213fd8 Date: - Tue, 03 May 2016 14:22:08 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume": {"migration_status": null, "attachments": [], "links": [{"href": "http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "self"}, {"href": "http://devstack.openstack.stack:8776/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "rel": "bookmark"}], "availability_zone": "nova", "os-vol-host-attr:host": "mo-0e4c34476@lvmdriver-1#lvmdriver-1", "encrypted": false, "os-volume-replication:extended_status": null, "replication_status": "disabled", "snapshot_id": null, "id": "ba81402e-55ff-42cd-ba12-3bce34c1dbcd", "size": 1, "user_id": "205e0e39a2534743b517ed0aa2fbcda7", "os-vol-tenant-attr:tenant_id": "2ab82e30d7984631874def67813dffd8", "os-vol-mig-status-attr:migstat": null, "metadata": {}, "status": "deleting", "description": null, "multiattach": false, "os-volume-replication:driver_data": null, "source_volid": null, "consistencygroup_id": null, "os-vol-mig-status-attr:name_id": null, "name": "fog-testvolume-1", "bootable": "false", "created_at": "2016-05-03T14:22:02.000000", "volume_type": "lvmdriver-1"}}' http_version: recorded_at: Tue, 03 May 2016 14:22:09 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/volumes/ba81402e-55ff-42cd-ba12-3bce34c1dbcd body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 404 message: '' headers: Content-Length: - '109' Content-Type: - application/json; charset=UTF-8 X-Compute-Request-Id: - req-2fb2a454-f704-4770-9564-95ce28bb24cd X-Openstack-Request-Id: - req-2fb2a454-f704-4770-9564-95ce28bb24cd Date: - Tue, 03 May 2016 14:22:11 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"itemNotFound": {"message": "Volume ba81402e-55ff-42cd-ba12-3bce34c1dbcd could not be found.", "code": 404}}' http_version: recorded_at: Tue, 03 May 2016 14:22:11 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fixtures/openstack/volume_v2/volume_type_read.yml000066400000000000000000000077121476630434000270720ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-fbc24ba6-40d1-4d09-96db-53d8c03c1f17 Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-fbc24ba6-40d1-4d09-96db-53d8c03c1f17 Date: - Tue, 03 May 2016 14:21:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types/326e2b0b-3776-49a5-b26d-4de79ac659ed body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-5ea17620-5bae-44cc-a8c6-b2fe314d02b2 Content-Type: - application/json Content-Length: - '222' X-Openstack-Request-Id: - req-5ea17620-5bae-44cc-a8c6-b2fe314d02b2 Date: - Tue, 03 May 2016 14:21:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_type": {"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT - request: method: get uri: http://devstack.openstack.stack:8776/v2/2ab82e30d7984631874def67813dffd8/types?lvmdriver-1 body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.38.0 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - db432efab394459183de8a37e7b67939 response: status: code: 200 message: '' headers: X-Compute-Request-Id: - req-6c243578-6883-43a3-bcf6-85327081db6b Content-Type: - application/json Content-Length: - '225' X-Openstack-Request-Id: - req-6c243578-6883-43a3-bcf6-85327081db6b Date: - Tue, 03 May 2016 14:21:32 GMT X-Cache: - MISS from i056593-u1404 X-Cache-Lookup: - MISS from i056593-u1404:3128 Via: - 1.1 i056593-u1404 (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"volume_types": [{"name": "lvmdriver-1", "extra_specs": {"volume_backend_name": "lvmdriver-1"}, "os-volume-type-access:is_public": true, "is_public": true, "id": "326e2b0b-3776-49a5-b26d-4de79ac659ed", "description": null}]}' http_version: recorded_at: Tue, 03 May 2016 14:21:32 GMT recorded_with: VCR 3.0.1 fog-openstack-1.1.5/spec/fog/000077500000000000000000000000001476630434000157725ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fog/network/000077500000000000000000000000001476630434000174635ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fog/network/get_service_with_token.yml000066400000000000000000000432051476630434000247440ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"password":"password","domain":{"name":"Default"},"name":"admin"}}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 6e4a7cedb7d048148f19133d67be338b Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d22e4316-815a-4e72-b106-7a2bf4efe5ea Content-Length: - '297' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "expires_at": "2015-10-06T17:15:28.198770Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.198822Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: get uri: http://devstack.openstack.stack:5000/v3/users/a18abc2039d6493aa7239a42033cc7c9/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 6e4a7cedb7d048148f19133d67be338b response: status: code: 200 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-20c75f38-5955-4292-9699-6213ec7b241e Content-Length: - '647' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/v3/users/a18abc2039d6493aa7239a42033cc7c9/projects", "previous": null, "next": null}, "projects": [{"description": null, "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/ca6707581327490398bf1f68fe396a5a"}, "enabled": true, "id": "ca6707581327490398bf1f68fe396a5a", "parent_id": null, "domain_id": "default", "name": "demo"}, {"description": null, "links": {"self": "http://devstack.openstack.stack:5000/v3/projects/ded5a6e0922c4be59e7c15517cfb89ee"}, "enabled": true, "id": "ded5a6e0922c4be59e7c15517cfb89ee", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"6e4a7cedb7d048148f19133d67be338b"}},"scope":{"project":{"id":"ca6707581327490398bf1f68fe396a5a"}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 7fb1c5b51eb040fcb10c3d13ce1e65f0 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6e36fc7a-a8d1-4a18-a09d-4b219e41f1b0 Content-Length: - '5365' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "d98e5f87050646f194c8c23b9e3f2bca", "name": "admin"}], "expires_at": "2015-10-06T17:15:28.198770Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ca6707581327490398bf1f68fe396a5a", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "09bb76485f3849c1a81dfeda62f1b27b"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "73acd28dc39e4d2cb332fe63eafd05fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "c0acc2a6600148248912d585cfd3debf"}], "type": "identity", "id": "00707ec9c3574d8ebb638265844f7903", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "9799d84417464a4cbb9226485ce539c7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "a0d9872cbf42461ea5ab511d32387662"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "a93b60395e044b9187ccd7b37cf0c68c"}], "type": "image", "id": "1f1c2c6373754553938a93de04db5bc0", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "273424f04e404eb98eb6008cdff7654f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "4d6d1528f709499ca177e637521d7e85"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "fa22fdd7d604405bb734e5b04b825c57"}], "type": "volumev2", "id": "49ef74e8dab84ed0b683f764ae6d510c", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "2b86f18fc82c4f599455afa9f54cae20"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "5620b03559c84f6fbb01b660e3e5b8a9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "f63063e775db4d48962172344fcdbdf1"}], "type": "volume", "id": "54efbe90e47244eca5fac1a65374e594", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "59f19d0e7c59457fa611c4f552fa37c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "5f2d351a942e41bc8cc2163569c645b7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "8e2b48e33993420b934607375242e6a1"}], "type": "network", "id": "b6063de99a3b474094779d6f778cd87b", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "1232531a1eda43cba7c8c539270a4839"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "87a9c4d67a9549e58a12e93675520929"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "aa0660735da048068454148d747bd997"}], "type": "computev21", "id": "c6ad05da1baa4dd190bdf01dca60e911", "name": "novav21"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "1f0cd271fb524becaaa23c5e06730a19"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "51429028b9e74cb585dfe4a7df2bfd40"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "8b6c30d816b1481f837448bcd368263a"}], "type": "compute", "id": "d22c9f37ebea4187ae97eb57ced02483", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "d0af6d9e8b304d69bc349b63fdb7bd00"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e08749c48e9e4d2c9f2733fa221b3b2f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "faf1491ad0244c17b13f9b4fc10becbb"}], "type": "ec2", "id": "e2550fc44d8044398e49a080439462ed", "name": "ec2"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["dbOguu7fR2Oysk8JiqbdvA", "vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.566510Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: post uri: http://devstack.openstack.stack:5000/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"7fb1c5b51eb040fcb10c3d13ce1e65f0"}},"scope":{"project":{"id":"ded5a6e0922c4be59e7c15517cfb89ee"}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 43319b22271d4fbc957e35fdda8408ce Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b26f83ed-81ea-44b1-ad39-1f7b3d25c726 Content-Length: - '5366' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "d98e5f87050646f194c8c23b9e3f2bca", "name": "admin"}], "expires_at": "2015-10-06T17:15:28.198770Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ded5a6e0922c4be59e7c15517cfb89ee", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "09bb76485f3849c1a81dfeda62f1b27b"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "73acd28dc39e4d2cb332fe63eafd05fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "c0acc2a6600148248912d585cfd3debf"}], "type": "identity", "id": "00707ec9c3574d8ebb638265844f7903", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "9799d84417464a4cbb9226485ce539c7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "a0d9872cbf42461ea5ab511d32387662"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "a93b60395e044b9187ccd7b37cf0c68c"}], "type": "image", "id": "1f1c2c6373754553938a93de04db5bc0", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "273424f04e404eb98eb6008cdff7654f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "4d6d1528f709499ca177e637521d7e85"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "fa22fdd7d604405bb734e5b04b825c57"}], "type": "volumev2", "id": "49ef74e8dab84ed0b683f764ae6d510c", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "2b86f18fc82c4f599455afa9f54cae20"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "5620b03559c84f6fbb01b660e3e5b8a9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "f63063e775db4d48962172344fcdbdf1"}], "type": "volume", "id": "54efbe90e47244eca5fac1a65374e594", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "59f19d0e7c59457fa611c4f552fa37c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "5f2d351a942e41bc8cc2163569c645b7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "8e2b48e33993420b934607375242e6a1"}], "type": "network", "id": "b6063de99a3b474094779d6f778cd87b", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "1232531a1eda43cba7c8c539270a4839"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "87a9c4d67a9549e58a12e93675520929"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "aa0660735da048068454148d747bd997"}], "type": "computev21", "id": "c6ad05da1baa4dd190bdf01dca60e911", "name": "novav21"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "1f0cd271fb524becaaa23c5e06730a19"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "51429028b9e74cb585dfe4a7df2bfd40"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "8b6c30d816b1481f837448bcd368263a"}], "type": "compute", "id": "d22c9f37ebea4187ae97eb57ced02483", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "d0af6d9e8b304d69bc349b63fdb7bd00"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e08749c48e9e4d2c9f2733fa221b3b2f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "faf1491ad0244c17b13f9b4fc10becbb"}], "type": "ec2", "id": "e2550fc44d8044398e49a080439462ed", "name": "ec2"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["syEwLaG_Q4KwWdg8zMTLEg", "vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.770741Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: get uri: http://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 43319b22271d4fbc957e35fdda8408ce response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '119' Date: - Tue, 06 Oct 2015 16:15:28 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9696/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT recorded_with: VCR 2.9.3 fog-openstack-1.1.5/spec/fog/network_api_path/000077500000000000000000000000001476630434000213305ustar00rootroot00000000000000fog-openstack-1.1.5/spec/fog/network_api_path/common_setup.yml000066400000000000000000000155111476630434000245660ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/id/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"password":"password","domain":{"name":"Default"},"name":"admin"}}},"scope":{"domain":{"name":"Default"}}}}' headers: User-Agent: - fog-core/1.38.0 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 03 May 2016 13:38:18 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 0afbf49d007a4d82850b853b703025d7 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-9914c0c3-9af8-4ad4-96f1-d03e51ba4dc9 Content-Length: - '4597' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"domain": {"id": "default", "name": "Default"}, "methods": ["password"], "roles": [{"id": "5929fb4077c3415c9850e66f2c2be16b", "name": "admin"}], "expires_at": "2016-05-03T14:38:18.465802Z", "catalog": [{"endpoints": [], "type": "volumev2", "id": "1766683b2f9f4ef2acf7f9e4e359fb9a", "name": "cinderv2"}, {"endpoints": [], "type": "metering", "id": "18dbb2f0ddeb45b99d11ed0568f153ab", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "admin", "id": "6f44eb5bf4e646f9a7afebb1f32501f1"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "public", "id": "9bb4f1c83833484e9d53ce2b57d6308b"}, {"region_id": "RegionOne", "url": "http://mo-edbdf14f1.mo.sap.corp:8777/", "region": "RegionOne", "interface": "internal", "id": "e62f1c8709554031ace717700c431635"}], "type": "metering", "id": "261a2c1f467c4b148f38822ae9f179a3", "name": "ceilometer"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/v3", "region": "RegionOne", "interface": "admin", "id": "634d57ce5d534c808afb24127b7ac355"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "public", "id": "8a7a2620740c4c2fb6fabf15746c101f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/v3", "region": "RegionOne", "interface": "internal", "id": "b53b60875b214e7f925f96d3a2a57464"}], "type": "identity", "id": "311850187e5a47108ac9b43ec5346658", "name": "keystone"}, {"endpoints": [], "type": "compute", "id": "3fd114ff2cff43be8bd3ecc5bc117ec8", "name": "nova"}, {"endpoints": [], "type": "volume", "id": "4a6033d57e30494a9577358d90d08123", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "54546c7c383a4d6abc2b93c94d75e2f7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "b253dd3d3f7d43d8ab35ad97c68440c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e7287110f01248d49cef8447d0f8d2cb"}], "type": "ec2", "id": "5eff43878c134ae7a5f405cf0d191aff", "name": "ec2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "internal", "id": "11d18be7930947f696db531c9bbdf245"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "admin", "id": "a603e6ffd0804c4f82a8770d71dede64"}, {"region_id": "RegionOne", "url": "http://i056593.dev.mo.sap.corp:8080/v2.0", "region": "RegionOne", "interface": "public", "id": "cf084db111ad4818a4f94080e0ed7819"}], "type": "monitoring", "id": "73e3bfb0b1b944f0ace3a078baad1fcc", "name": "Monitoring"}, {"endpoints": [], "type": "compute_legacy", "id": "92e80becd6d8462b8f51fb227eb11999", "name": "nova_legacy"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "acebdcb3418045b9a62ed295349327c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "b3b24c2c4ef44ff48049caff79149091"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "b9d30173e66148baa3ab2dc2df33cb5e"}], "type": "image", "id": "b936e5bfd38e4a3b97fcb8d08840881f", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "1a6718d75cd94e24993a27d275442a17"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "5cfedecf28a54bd38031380dd0c255b1"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "e1be91e12d5646a8830c32146a3ed1aa"}], "type": "network", "id": "c626cfc79ed34e3699c2d96c58d105cd", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8090", "region": "RegionOne", "interface": "admin", "id": "b91bd1a6c34b4973b3d48f94516358bc"}], "type": "object-store", "id": "e6a92b95728740ea9bda0c348a89f0f1", "name": "swift"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "205e0e39a2534743b517ed0aa2fbcda7", "name": "admin"}, "audit_ids": ["8pdWd-ZfQraOmBCihYotGg"], "issued_at": "2016-05-03T13:38:18.465852Z"}}' http_version: recorded_at: Tue, 03 May 2016 13:38:18 GMT - request: method: get uri: http://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 0afbf49d007a4d82850b853b703025d7 response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '122' Date: - Thu, 16 Jul 2015 13:30:01 GMT body: encoding: US-ASCII string: ! '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9696/net/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Thu, 16 Jul 2015 13:30:18 GMT recorded_with: VCR 2.9.3 fog-openstack-1.1.5/spec/fog/network_api_path/get_service_with_token.yml000066400000000000000000000432541476630434000266150ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:5000/id/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["password"],"password":{"user":{"password":"password","domain":{"name":"Default"},"name":"admin"}}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 6e4a7cedb7d048148f19133d67be338b Vary: - X-Auth-Token X-Openstack-Request-Id: - req-d22e4316-815a-4e72-b106-7a2bf4efe5ea Content-Length: - '297' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["password"], "expires_at": "2015-10-06T17:15:28.198770Z", "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.198822Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: get uri: http://devstack.openstack.stack:5000/id/v3/users/a18abc2039d6493aa7239a42033cc7c9/projects body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 6e4a7cedb7d048148f19133d67be338b response: status: code: 200 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) Vary: - X-Auth-Token X-Openstack-Request-Id: - req-20c75f38-5955-4292-9699-6213ec7b241e Content-Length: - '647' Content-Type: - application/json body: encoding: UTF-8 string: '{"links": {"self": "http://devstack.openstack.stack:5000/id/v3/users/a18abc2039d6493aa7239a42033cc7c9/projects", "previous": null, "next": null}, "projects": [{"description": null, "links": {"self": "http://devstack.openstack.stack:5000/id/v3/projects/ca6707581327490398bf1f68fe396a5a"}, "enabled": true, "id": "ca6707581327490398bf1f68fe396a5a", "parent_id": null, "domain_id": "default", "name": "demo"}, {"description": null, "links": {"self": "http://devstack.openstack.stack:5000/id/v3/projects/ded5a6e0922c4be59e7c15517cfb89ee"}, "enabled": true, "id": "ded5a6e0922c4be59e7c15517cfb89ee", "parent_id": null, "domain_id": "default", "name": "admin"}]}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: post uri: http://devstack.openstack.stack:5000/id/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"6e4a7cedb7d048148f19133d67be338b"}},"scope":{"project":{"id":"ca6707581327490398bf1f68fe396a5a"}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 7fb1c5b51eb040fcb10c3d13ce1e65f0 Vary: - X-Auth-Token X-Openstack-Request-Id: - req-6e36fc7a-a8d1-4a18-a09d-4b219e41f1b0 Content-Length: - '5365' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "d98e5f87050646f194c8c23b9e3f2bca", "name": "admin"}], "expires_at": "2015-10-06T17:15:28.198770Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ca6707581327490398bf1f68fe396a5a", "name": "demo"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/id/v3", "region": "RegionOne", "interface": "public", "id": "09bb76485f3849c1a81dfeda62f1b27b"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/id/v3", "region": "RegionOne", "interface": "admin", "id": "73acd28dc39e4d2cb332fe63eafd05fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/id/v3", "region": "RegionOne", "interface": "internal", "id": "c0acc2a6600148248912d585cfd3debf"}], "type": "identity", "id": "00707ec9c3574d8ebb638265844f7903", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "9799d84417464a4cbb9226485ce539c7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "a0d9872cbf42461ea5ab511d32387662"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "a93b60395e044b9187ccd7b37cf0c68c"}], "type": "image", "id": "1f1c2c6373754553938a93de04db5bc0", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "273424f04e404eb98eb6008cdff7654f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "4d6d1528f709499ca177e637521d7e85"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "fa22fdd7d604405bb734e5b04b825c57"}], "type": "volumev2", "id": "49ef74e8dab84ed0b683f764ae6d510c", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "2b86f18fc82c4f599455afa9f54cae20"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "5620b03559c84f6fbb01b660e3e5b8a9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "f63063e775db4d48962172344fcdbdf1"}], "type": "volume", "id": "54efbe90e47244eca5fac1a65374e594", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "59f19d0e7c59457fa611c4f552fa37c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "5f2d351a942e41bc8cc2163569c645b7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "8e2b48e33993420b934607375242e6a1"}], "type": "network", "id": "b6063de99a3b474094779d6f778cd87b", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "1232531a1eda43cba7c8c539270a4839"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "87a9c4d67a9549e58a12e93675520929"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "aa0660735da048068454148d747bd997"}], "type": "computev21", "id": "c6ad05da1baa4dd190bdf01dca60e911", "name": "novav21"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "internal", "id": "1f0cd271fb524becaaa23c5e06730a19"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "public", "id": "51429028b9e74cb585dfe4a7df2bfd40"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ca6707581327490398bf1f68fe396a5a", "region": "RegionOne", "interface": "admin", "id": "8b6c30d816b1481f837448bcd368263a"}], "type": "compute", "id": "d22c9f37ebea4187ae97eb57ced02483", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "d0af6d9e8b304d69bc349b63fdb7bd00"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e08749c48e9e4d2c9f2733fa221b3b2f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "faf1491ad0244c17b13f9b4fc10becbb"}], "type": "ec2", "id": "e2550fc44d8044398e49a080439462ed", "name": "ec2"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["dbOguu7fR2Oysk8JiqbdvA", "vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.566510Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: post uri: http://devstack.openstack.stack:5000/id/v3/auth/tokens body: encoding: UTF-8 string: '{"auth":{"identity":{"methods":["token"],"token":{"id":"7fb1c5b51eb040fcb10c3d13ce1e65f0"}},"scope":{"project":{"id":"ded5a6e0922c4be59e7c15517cfb89ee"}}}}' headers: User-Agent: - fog-core/1.32.1 Content-Type: - application/json response: status: code: 201 message: '' headers: Date: - Tue, 06 Oct 2015 16:15:28 GMT Server: - Apache/2.4.7 (Ubuntu) X-Subject-Token: - 43319b22271d4fbc957e35fdda8408ce Vary: - X-Auth-Token X-Openstack-Request-Id: - req-b26f83ed-81ea-44b1-ad39-1f7b3d25c726 Content-Length: - '5366' Content-Type: - application/json body: encoding: UTF-8 string: '{"token": {"methods": ["token", "password"], "roles": [{"id": "d98e5f87050646f194c8c23b9e3f2bca", "name": "admin"}], "expires_at": "2015-10-06T17:15:28.198770Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ded5a6e0922c4be59e7c15517cfb89ee", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/id/v3", "region": "RegionOne", "interface": "public", "id": "09bb76485f3849c1a81dfeda62f1b27b"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:35357/id/v3", "region": "RegionOne", "interface": "admin", "id": "73acd28dc39e4d2cb332fe63eafd05fa"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:5000/id/v3", "region": "RegionOne", "interface": "internal", "id": "c0acc2a6600148248912d585cfd3debf"}], "type": "identity", "id": "00707ec9c3574d8ebb638265844f7903", "name": "keystone"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "admin", "id": "9799d84417464a4cbb9226485ce539c7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "internal", "id": "a0d9872cbf42461ea5ab511d32387662"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9292", "region": "RegionOne", "interface": "public", "id": "a93b60395e044b9187ccd7b37cf0c68c"}], "type": "image", "id": "1f1c2c6373754553938a93de04db5bc0", "name": "glance"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "273424f04e404eb98eb6008cdff7654f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "4d6d1528f709499ca177e637521d7e85"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "fa22fdd7d604405bb734e5b04b825c57"}], "type": "volumev2", "id": "49ef74e8dab84ed0b683f764ae6d510c", "name": "cinderv2"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "2b86f18fc82c4f599455afa9f54cae20"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "5620b03559c84f6fbb01b660e3e5b8a9"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8776/v1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "f63063e775db4d48962172344fcdbdf1"}], "type": "volume", "id": "54efbe90e47244eca5fac1a65374e594", "name": "cinder"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "public", "id": "59f19d0e7c59457fa611c4f552fa37c3"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "admin", "id": "5f2d351a942e41bc8cc2163569c645b7"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:9696/", "region": "RegionOne", "interface": "internal", "id": "8e2b48e33993420b934607375242e6a1"}], "type": "network", "id": "b6063de99a3b474094779d6f778cd87b", "name": "neutron"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "1232531a1eda43cba7c8c539270a4839"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "87a9c4d67a9549e58a12e93675520929"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2.1/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "aa0660735da048068454148d747bd997"}], "type": "computev21", "id": "c6ad05da1baa4dd190bdf01dca60e911", "name": "novav21"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "internal", "id": "1f0cd271fb524becaaa23c5e06730a19"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "public", "id": "51429028b9e74cb585dfe4a7df2bfd40"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8774/v2/ded5a6e0922c4be59e7c15517cfb89ee", "region": "RegionOne", "interface": "admin", "id": "8b6c30d816b1481f837448bcd368263a"}], "type": "compute", "id": "d22c9f37ebea4187ae97eb57ced02483", "name": "nova"}, {"endpoints": [{"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "admin", "id": "d0af6d9e8b304d69bc349b63fdb7bd00"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "public", "id": "e08749c48e9e4d2c9f2733fa221b3b2f"}, {"region_id": "RegionOne", "url": "http://devstack.openstack.stack:8773/", "region": "RegionOne", "interface": "internal", "id": "faf1491ad0244c17b13f9b4fc10becbb"}], "type": "ec2", "id": "e2550fc44d8044398e49a080439462ed", "name": "ec2"}], "extras": {}, "user": {"domain": {"id": "default", "name": "Default"}, "id": "a18abc2039d6493aa7239a42033cc7c9", "name": "admin"}, "audit_ids": ["syEwLaG_Q4KwWdg8zMTLEg", "vlm3G1IwQ-CJALZfXpzrfA"], "issued_at": "2015-10-06T16:15:28.770741Z"}}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT - request: method: get uri: http://devstack.openstack.stack:9696/ body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.1 Proxy-Connection: - Keep-Alive Content-Type: - application/json Accept: - application/json X-Auth-Token: - 43319b22271d4fbc957e35fdda8408ce response: status: code: 200 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '119' Date: - Tue, 06 Oct 2015 16:15:28 GMT X-Cache: - MISS from i056593-vagrant X-Cache-Lookup: - MISS from i056593-vagrant:3128 Via: - 1.1 i056593-vagrant (squid/3.3.8) Connection: - keep-alive body: encoding: UTF-8 string: '{"versions": [{"status": "CURRENT", "id": "v2.0", "links": [{"href": "http://devstack.openstack.stack:9696/v2.0", "rel": "self"}]}]}' http_version: recorded_at: Tue, 06 Oct 2015 16:15:05 GMT recorded_with: VCR 2.9.3 fog-openstack-1.1.5/spec/fog/network_api_path/subnets_crud.yml000066400000000000000000000077611476630434000245660ustar00rootroot00000000000000--- http_interactions: - request: method: post uri: http://devstack.openstack.stack:9696/net/v2.0/networks body: encoding: UTF-8 string: ! '{"network":{"name":"foo-net12","shared":false}}' headers: User-Agent: - fog-core/1.32.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 0afbf49d007a4d82850b853b703025d7 response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '344' X-Openstack-Request-Id: - req-cc7677e6-9700-4215-b16d-d4a867db376b Date: - Thu, 16 Jul 2015 13:30:02 GMT body: encoding: US-ASCII string: ! '{"network": {"status": "ACTIVE", "subnets": [], "name": "foo-net12", "provider:physical_network": null, "router:external": false, "tenant_id": "5b1c4e7218d94dc8879d542002ffbc48", "admin_state_up": true, "mtu": 0, "shared": false, "provider:network_type": "vxlan", "id": "0629b827-668a-443c-b73e-1725359350fb", "provider:segmentation_id": 1104}}' http_version: recorded_at: Thu, 16 Jul 2015 13:30:19 GMT - request: method: post uri: http://devstack.openstack.stack:9696/net/v2.0/subnets body: encoding: UTF-8 string: ! '{"subnet":{"network_id":"0629b827-668a-443c-b73e-1725359350fb","cidr":"172.16.0.0/16","ip_version":4,"name":"my-network","gateway_ip":null}}' headers: User-Agent: - fog-core/1.32.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 0afbf49d007a4d82850b853b703025d7 response: status: code: 201 message: '' headers: Content-Type: - application/json; charset=UTF-8 Content-Length: - '452' X-Openstack-Request-Id: - req-295d5e91-514b-4980-85a4-adce351161a8 Date: - Thu, 16 Jul 2015 13:30:02 GMT body: encoding: US-ASCII string: ! '{"subnet": {"name": "my-network", "enable_dhcp": true, "network_id": "0629b827-668a-443c-b73e-1725359350fb", "tenant_id": "5b1c4e7218d94dc8879d542002ffbc48", "dns_nameservers": [], "gateway_ip": null, "ipv6_ra_mode": null, "allocation_pools": [{"start": "172.16.0.1", "end": "172.16.255.254"}], "host_routes": [], "ip_version": 4, "ipv6_address_mode": null, "cidr": "172.16.0.0/16", "id": "11bef948-6df8-4fa3-8c21-3fbd3cc4ca6d", "subnetpool_id": null}}' http_version: recorded_at: Thu, 16 Jul 2015 13:30:19 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/net/v2.0/subnets/11bef948-6df8-4fa3-8c21-3fbd3cc4ca6d body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 0afbf49d007a4d82850b853b703025d7 response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-5c4205db-8183-4eeb-a702-e6e156f82db1 Date: - Thu, 16 Jul 2015 13:30:03 GMT body: encoding: US-ASCII string: '' http_version: recorded_at: Thu, 16 Jul 2015 13:30:20 GMT - request: method: delete uri: http://devstack.openstack.stack:9696/net/v2.0/networks/0629b827-668a-443c-b73e-1725359350fb body: encoding: US-ASCII string: '' headers: User-Agent: - fog-core/1.32.0 Content-Type: - application/json Accept: - application/json X-Auth-Token: - 0afbf49d007a4d82850b853b703025d7 response: status: code: 204 message: '' headers: Content-Length: - '0' X-Openstack-Request-Id: - req-f21f4c07-2e64-4920-a53d-19f221af0c99 Date: - Thu, 16 Jul 2015 13:30:03 GMT body: encoding: US-ASCII string: '' http_version: recorded_at: Thu, 16 Jul 2015 13:30:20 GMT recorded_with: VCR 2.9.3 fog-openstack-1.1.5/spec/identity_v3_spec.rb000066400000000000000000001235421476630434000210260ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::Identity::V3 do before :all do @openstack_vcr = OpenStackVCR.new( :vcr_directory => 'spec/fixtures/openstack/identity_v3', :service_class => Fog::OpenStack::Identity::V3 ) @service = @openstack_vcr.service @os_auth_url = @openstack_vcr.os_auth_url end it 'authenticates with password, userid and domain_id' do VCR.use_cassette('authv3_a') do Fog::OpenStack::Identity::V3.new( :openstack_domain_id => @openstack_vcr.domain_id, :openstack_api_key => @openstack_vcr.password, :openstack_userid => @openstack_vcr.user_id, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) end end it 'authenticates with password, username and domain_id' do VCR.use_cassette('authv3_b') do Fog::OpenStack::Identity::V3.new( :openstack_domain_id => @openstack_vcr.domain_id, :openstack_api_key => @openstack_vcr.password, :openstack_username => @openstack_vcr.username, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) end end it 'authenticates with password, username and domain_name' do VCR.use_cassette('authv3_c') do Fog::OpenStack::Identity::V3.new( :openstack_user_domain => @openstack_vcr.domain_name, :openstack_api_key => @openstack_vcr.password, :openstack_username => @openstack_vcr.username, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) end end it 'authenticates with application credentials' do VCR.use_cassette('authv3_application_credential') do Fog::OpenStack::Identity::V3.new( :openstack_domain_id => @openstack_vcr.domain_id, :openstack_application_credential_id => @openstack_vcr.application_credential_id, :openstack_application_credential_secret => @openstack_vcr.application_credential_secret, :openstack_userid => @openstack_vcr.user_id, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) end end it 'authenticates in another region' do VCR.use_cassette('idv3_endpoint') do @endpoints_all = @service.endpoints.all end endpoints_in_region = @endpoints_all.select { |endpoint| endpoint.region == @openstack_vcr.region_other } unless endpoints_in_region.empty? VCR.use_cassette('idv3_other_region') do @fog = Fog::OpenStack::Identity::V3.new( :openstack_region => @openstack_vcr.region_other, :openstack_auth_url => @os_auth_url, :openstack_userid => @openstack_vcr.user_id, :openstack_api_key => @openstack_vcr.password ) @fog.wont_equal nil end end end it 'get an unscoped token, then reauthenticate with it' do VCR.use_cassette('authv3_unscoped_reauth') do id_v3 = Fog::OpenStack::Identity::V3.new( :openstack_api_key => @openstack_vcr.password, :openstack_userid => @openstack_vcr.user_id, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) auth_params = { :provider => "openstack", :openstack_auth_token => id_v3.credentials[:openstack_auth_token], :openstack_auth_url => @os_auth_url, :openstack_region => @openstack_vcr.region } @fog2 = Fog::OpenStack::Identity::V3.new(auth_params) @fog2.wont_equal nil token = @fog2.credentials[:openstack_auth_token] token.wont_equal nil end end it 'authenticates with project scope' do VCR.use_cassette('authv3_project') do Fog::OpenStack::Identity::V3.new( :openstack_project_name => @openstack_vcr.project_name, :openstack_domain_name => @openstack_vcr.domain_name, :openstack_api_key => @openstack_vcr.password, :openstack_username => @openstack_vcr.username, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) end end it 'get an unscoped token, then use it to get a scoped token' do VCR.use_cassette('authv3_unscoped') do id_v3 = Fog::OpenStack::Identity::V3.new( :openstack_api_key => @openstack_vcr.password, :openstack_userid => @openstack_vcr.user_id, :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) # Exchange it for a project-scoped token auth = Fog::OpenStack::Identity::V3.new( :openstack_project_name => @openstack_vcr.project_name, :openstack_domain_name => @openstack_vcr.domain_name, :openstack_auth_token => id_v3.credentials[:openstack_auth_token], :openstack_region => @openstack_vcr.region, :openstack_auth_url => @os_auth_url ) token = auth.credentials[:openstack_auth_token] # We can use the unscoped token to validate the scoped token validated_token = id_v3.tokens.validate(token) validated_token.wont_equal nil id_v3.tokens.check(token) proc { id_v3.tokens.check('random-token') }.must_raise Fog::OpenStack::Identity::NotFound end end it "find specific user, lists users" do VCR.use_cassette('idv3_users') do proc { @service.users.find_by_id 'u-random-blah' }.must_raise Fog::OpenStack::Identity::NotFound admin_user = @service.users.find_by_name @openstack_vcr.username admin_user.length.must_equal 1 users = @service.users users.wont_equal nil users.length.wont_equal 0 users_all = @service.users.all users_all.wont_equal nil users_all.length.wont_equal 0 admin_by_id = @service.users.find_by_id admin_user.first.id admin_by_id.wont_equal nil @service.users.find_by_name('pimpernel').length.must_equal 0 end end it 'CRUD users' do VCR.use_cassette('idv3_user_crud') do # Make sure there are no existing users called foobar or baz %w[foobar baz].each do |username| user = @service.users.find_by_name(username).first if user user.update(:enabled => false) user.destroy end end @service.users.find_by_name('foobar').length.must_equal 0 @service.users.find_by_name('baz').length.must_equal 0 # Create a user called foobar foobar_user = @service.users.create(:name => 'foobar', :email => 'foobar@example.com', :password => 's3cret!') foobar_id = foobar_user.id @service.users.find_by_name('foobar').length.must_equal 1 # Rename it to baz and disable it (required so we can delete it) foobar_user.update(:name => 'baz', :enabled => false) foobar_user.name.must_equal 'baz' # Read the user freshly and check the name & enabled state @service.users.find_by_name('baz').length.must_equal 1 baz_user = @service.users.find_by_id foobar_id baz_user.wont_equal nil baz_user.name.must_equal 'baz' baz_user.email.must_equal 'foobar@example.com' baz_user.enabled.must_equal false # Try to create the user again proc do @service.users.create(:name => 'baz', :email => 'foobar@example.com', :password => 's3cret!') end.must_raise Excon::Errors::Conflict # Delete the user baz_user.destroy # Check that the deletion worked proc { @service.users.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound @service.users.all.select { |user| %w[foobar baz].include? user.name }.length.must_equal 0 @service.users.find_by_name('foobar').length.must_equal 0 @service.users.find_by_name('baz').length.must_equal 0 end end it "CRUD & manipulate groups" do VCR.use_cassette('idv3_group_crud_mutation') do # Make sure there are no existing groups called foobar or baz @service.groups.all.select { |group| %w[foobar baz].include? group.name }.each(&:destroy) @service.groups.all.select { |group| %w[foobar baz].include? group.name }.length.must_equal 0 # Create a group called foobar foobar_group = @service.groups.create(:name => 'foobar', :description => "Group of Foobar users") foobar_id = foobar_group.id @service.groups.all.select { |group| group.name == 'foobar' }.length.must_equal 1 # Rename it to baz foobar_group.update(:name => 'baz', :description => "Group of Baz users") foobar_group.name.must_equal 'baz' # Read the group freshly and check the name @service.groups.all.select { |group| group.name == 'baz' }.length.must_equal 1 baz_group = @service.groups.find_by_id foobar_id baz_group.wont_equal nil baz_group.name.must_equal 'baz' # Add users to the group foobar_user1 = @service.users.create(:name => 'foobar1', :email => 'foobar1@example.com', :password => 's3cret!1') foobar_user2 = @service.users.create(:name => 'foobar2', :email => 'foobar2@example.com', :password => 's3cret!2') foobar_user1.groups.length.must_equal 0 baz_group.users.length.must_equal 0 baz_group.add_user(foobar_user1.id) # Check that a user is in the group foobar_user1.groups.length.must_equal 1 (baz_group.contains_user? foobar_user1.id).must_equal true baz_group.add_user(foobar_user2.id) # List users in the group baz_group.users.length.must_equal 2 # Remove a user from the group baz_group.remove_user(foobar_user1.id) (baz_group.contains_user? foobar_user1.id).must_equal false baz_group.users.length.must_equal 1 # Delete the users and make sure they are no longer in the group foobar_user1.destroy foobar_user2.destroy (baz_group.contains_user? foobar_user2.id).must_equal false baz_group.users.length.must_equal 0 # Delete the group baz_group.destroy proc { @service.groups.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound @service.groups.all.select { |group| %w[foobar baz].include? group.name }.length.must_equal 0 end end it "gets a token, checks it and then revokes it" do VCR.use_cassette('idv3_token') do auth = { :auth => { :identity => { :methods => %w[password], :password => { :user => { :id => @openstack_vcr.user_id, :password => @openstack_vcr.password } } }, :scope => { :project => { :domain => { :name => @openstack_vcr.domain_name }, :name => @openstack_vcr.project_name } } } } token = @service.tokens.authenticate(auth) token.wont_equal nil validated_token = @service.tokens.validate token.value validated_token.wont_equal nil @service.tokens.check(token.value) @service.tokens.revoke(token.value) proc { @service.tokens.check(token.value) }.must_raise Fog::OpenStack::Identity::NotFound end end it 'authenticates with a token' do VCR.use_cassette('authv3_token') do # Setup - get a non-admin token to check by using username/password authentication to start with auth_url = @os_auth_url begin foobar_user = @service.users.create( :name => 'foobar_385', :email => 'foobar_demo@example.com', :domain_id => @openstack_vcr.domain_id, :password => 's3cret!' ) foobar_role = @service.roles.create(:name => 'foobar_role390') foobar_user.grant_role(foobar_role.id) nonadmin_v3 = Fog::OpenStack::Identity::V3.new( :openstack_domain_id => foobar_user.domain_id, :openstack_api_key => 's3cret!', :openstack_username => 'foobar_385', :openstack_region => @openstack_vcr.region, :openstack_auth_url => auth_url ) # Test - check the token validity by using it to create a new Fog::OpenStack::Identity::V3 instance token_check = Fog::OpenStack::Identity::V3.new( :openstack_auth_token => nonadmin_v3.auth_token, :openstack_region => @openstack_vcr.region, :openstack_auth_url => auth_url ) token_check.wont_equal nil proc do Fog::OpenStack::Identity::V3.new( :openstack_auth_token => 'blahblahblah', :openstack_region => @openstack_vcr.region, :openstack_auth_url => auth_url ) end.must_raise Excon::Errors::NotFound ensure # Clean up foobar_user ||= @service.users.find_by_name('foobar_385').first foobar_user.destroy if foobar_user foobar_role ||= @service.roles.all.select { |role| role.name == 'foobar_role390' }.first foobar_role.destroy if foobar_role end end end it "lists domains" do VCR.use_cassette('idv3_domain') do domains = @service.domains domains.wont_equal nil domains.length.wont_equal 0 domains_all = @service.domains.all domains_all.wont_equal nil domains_all.length.wont_equal 0 default_domain = @service.domains.find_by_id @openstack_vcr.domain_id default_domain.wont_equal nil proc { @service.domains.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD domains" do VCR.use_cassette('idv3_domain_crud') do begin # Create a domain called foobar foobar_domain = @service.domains.create(:name => 'foobar') foobar_id = foobar_domain.id @service.domains.all(:name => 'foobar').length.must_equal 1 # Rename it to baz and disable it (required so we can delete it) foobar_domain.update(:name => 'baz', :enabled => false) foobar_domain.name.must_equal 'baz' # Read the domain freshly and check the name & enabled state @service.domains.all(:name => 'baz').length.must_equal 1 baz_domain = @service.domains.find_by_id foobar_id baz_domain.wont_equal nil baz_domain.name.must_equal 'baz' baz_domain.enabled.must_equal false ensure # Delete the domains begin if baz_domain baz_domain.update(:enabled => false) baz_domain.destroy end if foobar_domain foobar_domain.update(:enabled => false) foobar_domain.destroy end rescue end # Check that the deletion worked proc { @service.domains.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound if foobar_id %w[foobar baz].each do |domain_name| @service.domains.all(:name => domain_name).length.must_equal 0 end end end end it "Manipulates roles on domains" do # Note that the domain is implicit in the user operations here VCR.use_cassette('idv3_domain_roles_mutation') do begin foobar_user = @service.users.create(:name => 'foobar_role_user', :email => 'foobar@example.com', :password => 's3cret!') # User has no roles initially foobar_user.roles.length.must_equal 0 # Create a role and add it to the user in the user's domain foobar_role = @service.roles.create(:name => 'foobar_role') foobar_user.grant_role(foobar_role.id) foobar_user.roles.length.must_equal 1 assignments = @service.role_assignments.all(:user_id => foobar_user.id) assignments.length.must_equal 1 assignments.first.role['id'].must_equal foobar_role.id assignments.first.user['id'].must_equal foobar_user.id assignments.first.scope['domain']['id'].must_equal foobar_user.domain_id assignments.first.links['assignment'].must_match %r{/v3/domains/#{foobar_user.domain_id}/users/#{foobar_user.id}/roles/#{foobar_role.id}} # Quick test of @service.role_assignments.all while we're at it all_assignments = @service.role_assignments.all all_assignments.length.must_be :>, 0 # Check that the user has the role foobar_user.check_role(foobar_role.id).must_equal true # Revoke the role from the user foobar_user.revoke_role(foobar_role.id) foobar_user.check_role(foobar_role.id).must_equal false ensure foobar_user ||= @service.users.find_by_name('foobar_role_user').first foobar_user.destroy if foobar_user foobar_role ||= @service.roles.all.select { |role| role.name == 'foobar_role' }.first foobar_role.destroy if foobar_role end end end it "Manipulates roles on domain groups" do VCR.use_cassette('idv3_domain_group_roles_mutation') do skip "Manipulates roles on domain groups to be fixed" begin # Create a domain called foobar foobar_domain = @service.domains.create(:name => 'd-foobar') # Create a group in this domain foobar_group = @service.groups.create(:name => 'g-foobar', :description => "Group of Foobar users", :domain_id => foobar_domain.id) # Create a user in the domain foobar_user = @service.users.create(:name => 'u-foobar_foobar', :email => 'foobar@example.com', :password => 's3cret!', :domain_id => foobar_domain.id) # User has no roles initially foobar_user.roles.length.must_equal 0 # Create a role and add it to the domain group foobar_role = @service.roles.all.select { |role| role.name == 'foobar_role' }.first foobar_role.destroy if foobar_role foobar_role = @service.roles.create(:name => 'foobar_role') foobar_group.grant_role foobar_role.id foobar_group.roles.length.must_equal 1 # Add user to the group and check that it inherits the role foobar_user.check_role foobar_role.id.wont_equal nil @service.role_assignments.all(:user_id => foobar_user.id, :effective => true).length.must_equal 0 foobar_group.add_user foobar_user.id foobar_user.check_role(foobar_role.id).must_equal false # Still false in absolute assignment terms assignments = @service.role_assignments.all(:user_id => foobar_user.id, :effective => true) assignments.length.must_equal 1 assignments.first.role['id'].must_equal foobar_role.id assignments.first.user['id'].must_equal foobar_user.id assignments.first.scope['domain']['id'].must_equal foobar_user.domain_id assignments.first.links['assignment'].must_match %r{/v3/domains/#{foobar_domain.id}/groups/#{foobar_group.id}/roles/#{foobar_role.id}} assignments.first.links['membership'].must_match %r{/v3/groups/#{foobar_group.id}/users/#{foobar_user.id}} group_assignments = @service.role_assignments.all(:group_id => foobar_group.id) group_assignments.length.must_equal 1 group_assignments.first.role['id'].must_equal foobar_role.id group_assignments.first.group['id'].must_equal foobar_group.id group_assignments.first.scope['domain']['id'].must_equal foobar_user.domain_id group_assignments.first.links['assignment'].must_match %r{/v3/domains/#{foobar_domain.id}/groups/#{foobar_group.id}/roles/#{foobar_role.id}} # Revoke the role from the group and check the user no longer has it foobar_group.revoke_role foobar_role.id @service.role_assignments.all(:user_id => foobar_user.id, :effective => true).length.must_equal 0 ensure # Clean up foobar_user ||= @service.users.find_by_name('u-foobar_foobar').first foobar_user.destroy if foobar_user foobar_group ||= @service.groups.all.select { |group| group.name == 'g-foobar' }.first foobar_group.destroy if foobar_group foobar_role ||= @service.roles.all.select { |role| role.name == 'foobar_role' }.first foobar_role.destroyif foobar_role foobar_domain ||= @service.domains.all.select { |domain| domain.name == 'd-foobar' }.first if foobar_domain foobar_domain.update(:enabled => false) foobar_domain.destroy end end end end it "lists roles" do VCR.use_cassette('idv3_role') do roles = @service.roles roles.wont_equal nil roles.length.wont_equal 0 roles_all = @service.roles.all roles_all.wont_equal nil roles_all.length.wont_equal 0 role_by_id = @service.roles.find_by_id roles_all.first.id role_by_id.wont_equal nil proc { @service.roles.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD roles" do VCR.use_cassette('idv3_role_crud') do begin # Create a role called foobar foobar_role = @service.roles.create(:name => 'foobar23') foobar_id = foobar_role.id @service.roles.all(:name => 'foobar23').length.must_equal 1 # Rename it to baz foobar_role.update(:name => 'baz23') foobar_role.name.must_equal 'baz23' # Read the role freshly and check the name & enabled state @service.roles.all(:name => 'baz23').length.must_equal 1 baz_role = @service.roles.find_by_id foobar_id baz_role.wont_equal nil baz_role.name.must_equal 'baz23' baz_role.destroy baz_role = nil # Check that the deletion worked proc { @service.roles.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound if foobar_id %w[foobar23 baz23].each do |role_name| @service.roles.all(:name => role_name).length.must_equal 0 end ensure # Delete the roles foobar_by_name = @service.roles.all(:name => 'foobar23').first foobar_by_name.destroy if foobar_by_name baz_by_name = @service.roles.all(:name => 'baz23').first baz_by_name.destroy if baz_by_name end end end it "lists projects" do VCR.use_cassette('idv3_project') do projects = @service.projects projects.wont_equal nil # TO DO: fix along the two other skipped tests # projects.length.wont_equal 0 projects_all = @service.projects.all projects_all.wont_equal nil projects_all.length.wont_equal 0 project_byid = @service.projects.find_by_id projects_all.first.id project_byid.wont_equal nil proc { @service.projects.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD projects" do VCR.use_cassette('idv3_project_crud') do default_domain = @service.domains.find_by_id @openstack_vcr.domain_id begin # Create a project called foobar - should not work without domain id? foobar_project = @service.projects.create(:name => 'p-foobar46') foobar_id = foobar_project.id @service.projects.all(:name => 'p-foobar46').length.must_equal 1 foobar_project.domain_id.must_equal default_domain.id # Rename it to baz and disable it (required so we can delete it) foobar_project.update(:name => 'p-baz46', :enabled => false) foobar_project.name.must_equal 'p-baz46' # Read the project freshly and check the name & enabled state @service.projects.all(:name => 'p-baz46').length.must_equal 1 baz_project = @service.projects.find_by_id foobar_id baz_project.wont_equal nil baz_project.name.must_equal 'p-baz46' baz_project.enabled.must_equal false ensure # Delete the project baz_project.destroy # Check that the deletion worked proc { @service.projects.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound ['p-foobar46', 'p-baz46'].each do |project_name| @service.projects.all(:name => project_name).length.must_equal 0 end end end end it "CRUD & list hierarchical projects" do VCR.use_cassette('idv3_project_hier_crud_list') do begin # Create a project called foobar foobar_project = @service.projects.create(:name => 'p-foobar67') foobar_id = foobar_project.id # Create a sub-project called baz baz_project = @service.projects.create(:name => 'p-baz67', :parent_id => foobar_id) baz_id = baz_project.id baz_project.parent_id.must_equal foobar_id # Read the project freshly and check the parent_id fresh_baz_project = @service.projects.all(:name => 'p-baz67').first fresh_baz_project.wont_equal nil fresh_baz_project.parent_id.must_equal foobar_id # Create another sub-project called boo boo_project = @service.projects.create(:name => 'p-boo67', :parent_id => foobar_id) boo_id = boo_project.id # Create a sub-project of boo called booboo booboo_project = @service.projects.create(:name => 'p-booboo67', :parent_id => boo_id) booboo_id = booboo_project.id # Make sure we have a role on all these projects (needed for subtree_as_list and parents_as_list) prj_role = @service.roles.create(:name => 'r-project67') [foobar_project, baz_project, boo_project, booboo_project].each do |project| project.grant_role_to_user(prj_role.id, @service.current_user_id) end # Get the children of foobar, as a tree of IDs foobar_kids = @service.projects.find_by_id(foobar_id, :subtree_as_ids).subtree foobar_kids.keys.length.must_equal 2 boo_index = foobar_kids.keys.index boo_id boo_index.wont_equal nil foobar_child_id = foobar_kids.keys[boo_index] foobar_kids[foobar_child_id].length.must_equal 1 foobar_grandchild_id = foobar_kids[foobar_child_id].keys.first foobar_grandchild_id.must_equal booboo_id # Get the children of foobar, as a list of objects foobar_kids = @service.projects.find_by_id(foobar_id, :subtree_as_list).subtree foobar_kids.length.must_equal 3 [foobar_kids[0].id, foobar_kids[1].id, foobar_kids[2].id].sort.must_equal [baz_id, boo_id, booboo_id].sort # Create a another sub-project of boo called fooboo and check that it appears in the parent's subtree fooboo_project = @service.projects.create(:name => 'p-fooboo67', :parent_id => boo_id) fooboo_id = fooboo_project.id fooboo_project.grant_role_to_user(prj_role.id, @service.current_user_id) foobar_new_kids = @service.projects.find_by_id(foobar_id, :subtree_as_list).subtree foobar_new_kids.length.must_equal 4 # Get the parents of booboo, as a tree of IDs booboo_parents = @service.projects.find_by_id(booboo_id, :parents_as_ids).parents booboo_parents.keys.length.must_equal 1 booboo_parent_id = booboo_parents.keys.first booboo_parents[booboo_parent_id].length.must_equal 1 booboo_grandparent_id = booboo_parents[booboo_parent_id].keys.first booboo_grandparent_id.must_equal foobar_id assert_nil booboo_parents[booboo_parent_id][booboo_grandparent_id] # Get the parents of booboo, as a list of objects booboo_parents = @service.projects.find_by_id(booboo_id, :parents_as_list).parents booboo_parents.length.must_equal 2 [booboo_parents[0].id, booboo_parents[1].id].sort.must_equal [foobar_id, boo_id].sort ensure # Delete the projects fooboo_project.destroy if fooboo_project booboo_project.destroy if booboo_project boo_project.destroy if boo_project baz_project.destroy if baz_project foobar_project.destroy if foobar_project prj_role ||= @service.roles.all(:name => 'r-project67').first prj_role.destroy if prj_role # Check that the deletion worked proc { @service.projects.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound if foobar_id ['p-booboo67', 'p-fooboo67', 'p-boo67', 'p-baz67', 'p-foobar67'].each do |project_name| prj = @service.projects.all(:name => project_name).first prj.destroy if prj @service.projects.all(:name => project_name).length.must_equal 0 end end end end it "Manipulates projects - add/remove users/groups via role assignment/revocation" do VCR.use_cassette('idv3_project_group_user_roles_mutation') do # Make sure there is no existing project called foobar @service.projects.all(:name => 'p-foobar69').each do |project| project.update(:enabled => false) project.destroy end @service.projects.all(:name => 'p-foobar69').length.must_equal 0 begin # Create a project called foobar foobar_project = @service.projects.create(:name => 'p-foobar69') # Create a role called baz @service.roles.all(:name => 'baz').each do |role| role.update(:enabled => false) role.destroy end baz_role = @service.roles.create(:name => 'baz69') # Create a user foobar_user = @service.users.create(:name => 'u-foobar69', :email => 'foobar@example.com', :password => 's3cret!') # Create a group and add the user to it foobar_group = @service.groups.create(:name => 'g-foobar69', :description => "Group of Foobar users") foobar_group.add_user foobar_user.id # User has no projects initially foobar_user.projects.length.must_equal 0 @service.role_assignments.all(:user_id => foobar_user.id, :project_id => foobar_project.id, :effective => true).length.must_equal 0 foobar_project.user_roles(foobar_user.id).length.must_equal 0 # Grant role to the user in the new project - this assigns the project to the user foobar_project.grant_role_to_user(baz_role.id, foobar_user.id) foobar_user.projects.length.must_equal 1 foobar_project.check_user_role(foobar_user.id, baz_role.id).must_equal true foobar_project.user_roles(foobar_user.id).length.must_equal 1 # Revoke role from the user in the new project - this removes the user from the project foobar_project.revoke_role_from_user(baz_role.id, foobar_user.id) foobar_user.projects.length.must_equal 0 foobar_project.check_user_role(foobar_user.id, baz_role.id).must_equal false # Group initially has no roles in project foobar_project.group_roles(foobar_group.id).length.must_equal 0 @service.role_assignments.all(:user_id => foobar_user.id, :project_id => foobar_project.id, :effective => true).length.must_equal 0 # Grant role to the group in the new project - this assigns the project to the group foobar_project.grant_role_to_group(baz_role.id, foobar_group.id) foobar_project.check_group_role(foobar_group.id, baz_role.id).must_equal true foobar_project.group_roles(foobar_group.id).length.must_equal 1 # Now we check that a user has the role in that project assignments = @service.role_assignments.all(:user_id => foobar_user.id, :project_id => foobar_project.id, :effective => true) assignments.length.must_equal 1 assignments.first.role['id'].must_equal baz_role.id assignments.first.user['id'].must_equal foobar_user.id assignments.first.scope['project']['id'].must_equal foobar_project.id assignments.first.links['assignment'].must_match %r{/v3/projects/#{foobar_project.id}/groups/#{foobar_group.id}/roles/#{baz_role.id}} assignments.first.links['membership'].must_match %r{/v3/groups/#{foobar_group.id}/users/#{foobar_user.id}} # and we check that the user is in the project because of group membership foobar_user.projects.length.must_equal 1 # Revoke role from the group in the new project - this removes the group from the project foobar_project.revoke_role_from_group(baz_role.id, foobar_group.id) foobar_user.projects.length.must_equal 0 foobar_project.check_group_role(foobar_group.id, baz_role.id).must_equal false ensure # Clean up foobar_user.destroy if foobar_user foobar_group.destroy if foobar_group baz_role.destroy if baz_role if foobar_project foobar_project.update(:enabled => false) foobar_project.destroy end end end end it "lists services" do VCR.use_cassette('idv3_service') do services = @service.services services.wont_equal nil services.length.wont_equal 0 services_all = @service.services.all services_all.wont_equal nil services_all.length.wont_equal 0 some_service = @service.services.find_by_id services_all.first.id some_service.wont_equal nil proc { @service.services.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD services" do VCR.use_cassette('idv3_services_crud') do @service.services.all begin # Create a service called foobar foobar_service = @service.services.create(:type => 'volume', :name => 'foobar') foobar_id = foobar_service.id @service.services.all(:type => 'volume').select { |service| service.name == 'foobar' }.length.must_equal 1 # Rename it to baz foobar_service.update(:name => 'baz') foobar_service.name.must_equal 'baz' # Read the service freshly and check the name @service.services.all.select { |service| service.name == 'baz' }.length.must_equal 1 baz_service = @service.services.find_by_id foobar_id baz_service.wont_equal nil baz_service.name.must_equal 'baz' baz_service.type.must_equal 'volume' ensure # Delete the service baz_service.destroy if baz_service # Check that the deletion worked proc { @service.services.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound if foobar_id @service.services.all.select { |service| %w[foobar baz].include? service.name }.length.must_equal 0 end end end it "lists endpoints" do VCR.use_cassette('idv3_endpoint') do endpoints = @service.endpoints endpoints.wont_equal nil endpoints.length.wont_equal 0 endpoints_all = @service.endpoints.all endpoints_all.wont_equal nil endpoints_all.length.wont_equal 0 some_endpoint = @service.endpoints.find_by_id endpoints_all.first.id some_endpoint.wont_equal nil proc { @service.endpoints.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD endpoints" do VCR.use_cassette('idv3_endpoints_crud') do service = @service.services.all.first @service.endpoints.all begin # Create a endpoint called foobar foobar_endpoint = @service.endpoints.create(:service_id => service.id, :interface => 'internal', :name => 'foobar', :url => 'http://example.com/foobar', :enabled => false) foobar_id = foobar_endpoint.id @service.endpoints.all(:interface => 'internal').select do |endpoint| endpoint.name == 'foobar' end.length.must_equal 1 # Rename it to baz foobar_endpoint.update(:name => 'baz', :url => 'http://example.com/baz') foobar_endpoint.name.must_equal 'baz' foobar_endpoint.url.must_equal 'http://example.com/baz' # Read the endpoint freshly and check the name @service.endpoints.all(:interface => 'internal').select do |endpoint| endpoint.name == 'baz' end.length.must_equal 1 baz_endpoint = @service.endpoints.find_by_id foobar_id baz_endpoint.wont_equal nil baz_endpoint.name.must_equal 'baz' baz_endpoint.url.must_equal 'http://example.com/baz' baz_endpoint.interface.must_equal 'internal' ensure # Delete the endpoint baz_endpoint.destroy # Check that the deletion worked proc { @service.endpoints.find_by_id foobar_id }.must_raise Fog::OpenStack::Identity::NotFound @service.endpoints.all.select { |endpoint| %w[foobar baz].include? endpoint.name }.length.must_equal 0 end end end it "lists OS credentials" do VCR.use_cassette('idv3_credential') do credentials = @service.os_credentials credentials.wont_equal nil credentials_all = @service.os_credentials.all credentials_all.wont_equal nil proc { @service.os_credentials.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD OS credentials" do VCR.use_cassette('idv3_credential_crud') do begin # Create a user foobar_user = @service.users.create(:name => 'u-foobar_cred', :email => 'foobar@example.com', :password => 's3cret!') project = @service.projects.all.first access_key = '9c4e774a-f644-498f-90c4-970b3f817fc5' secret_key = '7e084117-b13d-4656-9eca-85376b690897' # OpenStack Keystone requires the blob to be a JSON string - i.e. not JSON, but a string containing JSON :-/ blob_json = {:access => access_key, :secret => secret_key}.to_json # Make sure there are no existing ec2 credentials @service.os_credentials.all.select do |credential| credential.type == 'foo' || credential.type == 'ec2' end.each(&:destroy) @service.os_credentials.all.select do |credential| credential.type == 'ec2' end.length.must_equal 0 # Create a credential foo_credential = @service.os_credentials.create(:type => 'ec2', :project_id => project.id, :user_id => foobar_user.id, :blob => blob_json) credential_id = foo_credential.id @service.os_credentials.all.select { |credential| credential.type == 'ec2' }.length.must_equal 1 # Update secret key new_secret_key = '62307bcd-ca3c-47ae-a114-27a6cadb5bc9' new_blob_json = {:access => access_key, :secret => new_secret_key}.to_json foo_credential.update(:blob => new_blob_json) JSON.parse(foo_credential.blob)['secret'].must_equal new_secret_key # Read the credential freshly and check the secret key @service.os_credentials.all.select { |credential| credential.type == 'ec2' }.length.must_equal 1 updated_credential = @service.os_credentials.find_by_id credential_id updated_credential.wont_equal nil updated_credential.type.must_equal 'ec2' JSON.parse(updated_credential.blob)['secret'].must_equal new_secret_key ensure foobar_user ||= @service.users.find_by_name('u-foobar_cred').first foobar_user.destroy if foobar_user # Delete the credential begin updated_credential.destroy if updated_credential foo_credential.destroy if foo_credential rescue false end # Check that the deletion worked if credential_id proc { @service.os_credentials.find_by_id credential_id }.must_raise Fog::OpenStack::Identity::NotFound end @service.os_credentials.all.select { |credential| credential.type == 'ec2' }.length.must_equal 0 end end end it "lists policies" do VCR.use_cassette('idv3_policy') do policies = @service.policies policies.wont_equal nil policies.length.must_equal 0 policies_all = @service.policies.all policies_all.wont_equal nil policies_all.length.must_equal 0 proc { @service.policies.find_by_id 'atlantis' }.must_raise Fog::OpenStack::Identity::NotFound end end it "CRUD policies" do VCR.use_cassette('idv3_policy_crud') do blob = {'foobar_user' => ['role:compute-user']}.to_json # Make sure there are no existing policies @service.policies.all.select { |policy| policy.type == 'application/json' }.length.must_equal 0 # Create a policy foo_policy = @service.policies.create(:type => 'application/json', :blob => blob) policy_id = foo_policy.id @service.policies.all.select { |policy| policy.type == 'application/json' }.length.must_equal 1 # Update policy blob new_blob = {'baz_user' => ['role:compute-user']}.to_json foo_policy.update(:blob => new_blob) foo_policy.blob.must_equal new_blob # Read the policy freshly and check the secret key @service.policies.all.select { |policy| policy.type == 'application/json' }.length.must_equal 1 updated_policy = @service.policies.find_by_id policy_id updated_policy.wont_equal nil updated_policy.type.must_equal 'application/json' updated_policy.blob.must_equal new_blob # Delete the policy updated_policy.destroy # Check that the deletion worked proc { @service.policies.find_by_id policy_id }.must_raise Fog::OpenStack::Identity::NotFound @service.policies.all.select { |policy| policy.type == 'application/json' }.length.must_equal 0 end end end fog-openstack-1.1.5/spec/image_v1_spec.rb000066400000000000000000000022501476630434000202450ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::Image do before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => 'spec/fixtures/openstack/image_v1', :service_class => Fog::OpenStack::Image::V1 ) @service = openstack_vcr.service end it 'lists available images' do VCR.use_cassette('list_images') do @images = @service.images.all end end describe 'find_by_id' do it 'finds image' do existing_image_id = 'ea20c966-d2fb-4287-a2eb-7bece9af4263' VCR.use_cassette('images_v1_find_by_id') do @service.images.find_by_id(existing_image_id).id.must_equal existing_image_id end end it 'returns nil when image is not found' do VCR.use_cassette('images_v1_find_by_id') do assert_nil @service.images.find_by_id('non-existing-id') end end it 'returns custom properties' do existing_image_id = 'ea20c966-d2fb-4287-a2eb-7bece9af4263' expected_value = 'bar' VCR.use_cassette('images_v1_find_by_id') do @service.images.find_by_id(existing_image_id).properties['foo'].must_equal expected_value end end end end fog-openstack-1.1.5/spec/image_v2_spec.rb000066400000000000000000000272301476630434000202530ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::Image do spec_data_folder = 'spec/fixtures/openstack/image_v2' before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => spec_data_folder, :service_class => Fog::OpenStack::Image # Fog to choose latest available version ) @service = openstack_vcr.service end def cleanup_image(image, image_name = nil, image_id = nil) # Delete the image image.destroy if image if image_id begin image_by_id = @service.images.find_by_id(image_id) rescue false end end image_by_id.destroy if image_by_id if image_name @service.images.all(:name => image_name).each(&:destroy) end # Check that the deletion worked proc { @service.images.find_by_id(image_id).must_equal nil } if image_id @service.images.all(:name => image_name).length.must_equal 0 if image_name end it "CRUD & list images" do VCR.use_cassette('image_v2_crud') do image_name = 'foobar' image_rename = 'baz' @service.images.all.wont_equal nil begin # Create an image called foobar foobar_image = @service.images.create(:name => image_name) foobar_id = foobar_image.id @service.images.all(:name => image_name).length.must_equal 1 foobar_image.status.must_equal 'queued' # Rename it to baz # see "Patch images" test below - for now this will be a simple synthesis of a JSON patch with op = 'replace' foobar_image.update(:name => image_rename) foobar_image.name.must_equal image_rename baz_image = @service.images.find_by_id foobar_id baz_image.wont_equal nil baz_image.id.must_equal foobar_id baz_image.name.must_equal image_rename # Read the image freshly by listing images filtered by the new name images = @service.images.all(:name => image_rename) images.length.must_equal 1 images.first.id.must_equal baz_image.id ensure cleanup_image baz_image @service.images.all.select { |image| [image_name, image_rename].include? image.name }.each(&:destroy) # Check that the deletion worked @service.images.all.count { |image| [image_name, image_rename].include? image.name }.must_equal 0 end end end it "Image creation with ID" do VCR.use_cassette('image_v2_create_id') do image_name = 'foobar_id' begin # increment this identifier when running test more than once, unless the VCR recording is being used identifier = '11111111-2222-3333-aaaa-bbbbbbcccce1' # Create an image with a specified ID foobar_image = @service.images.create(:name => 'foobar_id', :id => identifier) foobar_id = foobar_image.id @service.images.all(:name => image_name).length.must_equal 1 foobar_image.status.must_equal 'queued' foobar_id.must_equal identifier get_image = @service.images.find_by_id(identifier) get_image.name.must_equal image_name ensure cleanup_image foobar_image, image_name, foobar_id end end end it "Image saving when image has been created with ID" do VCR.use_cassette('image_v2_save_id') do identifier = "11111111-2222-3333-aaaa-bbbbbbcccce2" begin # Create an image with a specified ID foobar_image = Fog::OpenStack::Image::V2::Image.new( :name => 'original_name', :id => identifier, :service => @service, :property_to_delete => 'bar' ) foobar_image.save foobar_image.status.must_equal 'queued' foobar_image.id.must_equal identifier foobar_image.name.must_equal 'original_name' foobar_image.property_to_delete.must_equal 'bar' foobar_image.respond_to?(:property_to_add).must_equal false get_image = @service.images.find_by_id(identifier) get_image.name = 'updated_name' get_image.property_to_add = 'bar' get_image.property_to_delete = nil get_image.save updated_image = @service.images.find_by_id(identifier) updated_image.name.must_equal 'updated_name' updated_image.property_to_add.must_equal 'bar' updated_image.respond_to?(:property_to_delete).must_equal false ensure cleanup_image nil, nil, identifier end end end it "Reloads image state from the server" do VCR.use_cassette('image_v2_reload') do image_name = 'reloaded_image' begin created_image = @service.images.create( :name => image_name + '_original', :service => @service, ) identifier = created_image.id found_image = @service.images.find_by_id(identifier) # verify an image provided by `create` can be reloaded found_image.name = image_name + '_updated' found_image.save created_image.name.must_equal image_name + '_original', created_image.reload created_image.name.must_equal image_name + '_updated' # verify an image provided by `find_by_id` can be reloaded created_image.name = image_name + '_updated_again' created_image.save found_image.name.must_equal image_name + '_updated' found_image.reload found_image.name.must_equal image_name + '_updated_again' ensure cleanup_image nil, image_name end end end it "Image creation with specified location" do VCR.use_cassette('image_v2_create_location') do begin # Create image with location of image data skip "Figure out 'Create image with location of image data'" end end end it "Image upload & download in bulk" do VCR.use_cassette('image_v2_upload_download') do image_name = 'foobar_up1' begin # minimal.ova is a "no-op" virtual machine image, 80kB .ova file containing 64Mb dynamic disk image_path = "#{spec_data_folder}/minimal.ova" foobar_image = @service.images.create(:name => image_name, :container_format => 'ovf', :disk_format => 'vmdk') foobar_id = foobar_image.id # Status should be queued @service.images.find_by_id(foobar_id).status.must_match(/queued/) # Upload data from File or IO object foobar_image.upload_data File.new(image_path, 'r') # Status should be saving or active @service.images.find_by_id(foobar_id).status.must_match(/saving|active/) # Get an IO object from which to download image data - wait until finished saving though while @service.images.find_by_id(foobar_id).status == 'saving' sleep 1 end @service.images.find_by_id(foobar_id).status.must_equal 'active' # Bulk download downloaded_data = foobar_image.download_data downloaded_data.size.must_equal File.size(image_path) ensure cleanup_image foobar_image, image_name end end end it "Deactivates and activates an image" do VCR.use_cassette('image_v2_activation') do image_name = 'foobar3a' # "no-op" virtual machine image, 80kB .ova file containing 64Mb dynamic disk image_path = "spec/fixtures/openstack/image_v2/minimal.ova" begin # Create an image called foobar2 foobar_image = @service.images.create(:name => image_name, :container_format => 'ovf', :disk_format => 'vmdk') foobar_id = foobar_image.id foobar_image.upload_data File.new(image_path, 'r') while @service.images.find_by_id(foobar_id).status == 'saving' sleep 1 end foobar_image.deactivate proc { foobar_image.download_data }.must_raise Excon::Errors::Forbidden foobar_image.reactivate foobar_image.download_data ensure cleanup_image foobar_image, image_name end end end it "Adds and deletes image tags" do VCR.use_cassette('image_v2_tags') do image_name = 'foobar3' begin # Create an image foobar_image = @service.images.create(:name => image_name, :container_format => 'ovf', :disk_format => 'vmdk') foobar_id = foobar_image.id foobar_image.add_tag 'tag1' @service.images.find_by_id(foobar_id).tags.must_include 'tag1' foobar_image.add_tags %w[tag2 tag3 tag4] @service.images.find_by_id(foobar_id).tags.must_equal %w[tag4 tag1 tag2 tag3] foobar_image.remove_tag 'tag2' @service.images.find_by_id(foobar_id).tags.must_equal %w[tag4 tag1 tag3] foobar_image.remove_tags %w[tag1 tag3] @service.images.find_by_id(foobar_id).tags.must_include 'tag4' ensure cleanup_image foobar_image, image_name end end end it "CRUD and list image members" do VCR.use_cassette('image_v2_member_crudl') do image_name = 'foobar4' tenant_id = 'tenant1' begin # Create an image called foobar foobar_image = @service.images.create(:name => image_name) foobar_image.members.size.must_equal 0 foobar_image.add_member tenant_id foobar_image.members.size.must_equal 1 member = foobar_image.member tenant_id member.wont_equal nil member['status'].must_equal 'pending' member['status'] = 'accepted' foobar_image.update_member member foobar_image.member(tenant_id)['status'].must_equal 'accepted' foobar_image.remove_member member['member_id'] foobar_image.members.size.must_equal 0 ensure cleanup_image foobar_image, image_name end end end it "Gets JSON schemas for 'images', 'image', 'members', 'member'" do VCR.use_cassette('image_v2_schemas') do skip 'Fetching JSON schemas: to be implemented' end end it "CRUD resource types" do VCR.use_cassette('image_v2_resource_type_crud') do skip 'CRUD resource types: to be implemented' end end it "CRUD namespace metadata definition" do VCR.use_cassette('image_v2_namespace_metadata_crud') do skip 'CRUD namespace metadata definition: to be implemented' end end it "CRUD property metadata definition" do VCR.use_cassette('image_v2_property_metadata_crud') do skip 'CRUD property metadata definition: to be implemented' end end it "CRUD object metadata definition" do VCR.use_cassette('image_v2_object_metadata_crud') do skip 'CRUD object metadata definition: to be implemented' end end it "CRUD tag metadata definition" do VCR.use_cassette('image_v2_tag_metadata_crud') do skip 'CRUD tag metadata definition: to be implemented' end end it "CRUD schema metadata definition" do VCR.use_cassette('image_v2_schema_metadata_crud') do skip 'CRUD schema metadata definition: to be implemented' end end it "Creates, lists & gets tasks" do VCR.use_cassette('image_v2_task_clg') do skip 'Creates, lists & gets tasks: to be implemented' end end describe 'find_by_id' do it 'finds image' do existing_image_id = 'fe05659e-d433-4e09-aa78-19e0b7f5e497' VCR.use_cassette('images_v2_find_by_id') do @service.images.find_by_id(existing_image_id).id.must_equal existing_image_id end end it 'returns nil when image is not found' do VCR.use_cassette('images_v2_find_by_id') do assert_nil @service.images.find_by_id('11111111-2222-3333-aaaa-bbbbbbcccce2') end end end end fog-openstack-1.1.5/spec/image_v2_upload_spec.rb000066400000000000000000000053761476630434000216260ustar00rootroot00000000000000require 'spec_helper' describe Fog::OpenStack::Image do it "Upload/download image data using chunked IO" do # We only run this against a live system, # because VCR's use of Webmock stops Excon :response_block from working correctly if ENV['OS_AUTH_URL'] @os_auth_url = ENV['OS_AUTH_URL'] # allow us to ignore dev certificates on servers Excon.defaults[:ssl_verify_peer] = false if ENV['SSL_VERIFY_PEER'] == 'false' # setup the service object @service ||= Fog::OpenStack::Image.new( :openstack_auth_url => "#{@os_auth_url}/auth/tokens", :openstack_project_name => ENV.fetch('OS_PROJECT_NAME'), :openstack_username => ENV.fetch('OS_USERNAME'), :openstack_api_key => ENV.fetch('OS_PASSWORD'), :openstack_region => ENV['OS_REGION_NAME'] || 'RegionOne', :openstack_domain_name => ENV['OS_USER_DOMAIN_NAME'] || 'Default' ) spec_data_folder = 'spec/fixtures/openstack/image_v2' begin #### ## Upload & download data using request/response blocks so we can stream data effectively #### # "no-op" virtual machine image, 80kB .ova file containing 64Mb dynamic disk image_path = "#{spec_data_folder}/minimal.ova" foobar_image = @service.images.create(:name => 'foobar_up2', :container_format => 'ovf', :disk_format => 'vmdk') foobar_id = foobar_image.id data_file = File.new(image_path, 'r') chunker = lambda do # Excon.defaults[:chunk_size] defaults to 1048576, ie 1MB # to_s will convert the nil received after everything is read to the final empty chunk data_file.read(Excon.defaults[:chunk_size]).to_s end foobar_image.upload_data(:request_block => chunker) # Make sure the upload is finished while @service.images.find_by_id(foobar_id).status == 'saving' sleep 1 end @service.images.find_by_id(foobar_id).status.must_equal 'active' size = 0 read_block = lambda do |chunk, _remaining, _total| size += chunk.size end foobar_image.download_data(:response_block => read_block) size.must_equal File.size(image_path) ensure # Delete the image foobar_image.destroy if foobar_image @service.images.all(:name => 'foobar_up2').each(&:destroy) # Check that the deletion worked if foobar_id proc do @service.images.find_by_id foobar_id end.must_raise Fog::OpenStack::Image::NotFound end @service.images.all(:name => 'foobar_up2').length.must_equal 0 end end end end fog-openstack-1.1.5/spec/monitoring_spec.rb000066400000000000000000000370671476630434000207600ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' require 'fog/openstack/monitoring/models/metric' require 'time' describe Fog::OpenStack::Monitoring do spec_data_folder = 'spec/fixtures/openstack/monitoring' before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => spec_data_folder, :service_class => Fog::OpenStack::Monitoring ) @service = openstack_vcr.service @timestamp = 146_375_736_714_3 end it 'metric crud tests' do VCR.use_cassette('metric_crud') do # create single metric metric_0 = @service.metrics.create(:name => 'sample_metric_0', :timestamp => @timestamp, :dimensions => {"key1" => "value1"}, :value => 42, :value_meta => {"meta_key1" => "meta_value1"}) metric_0.wont_be_nil # create multiple metrics metric_1 = Fog::OpenStack::Monitoring::Metric.new(:name => 'sample_metric_1', :timestamp => @timestamp, :dimensions => {"key1" => "value1"}, :value => 42, :value_meta => {"meta_key1" => "meta_value1"}) metric_2 = Fog::OpenStack::Monitoring::Metric.new(:name => 'sample_metric_2', :timestamp => @timestamp, :dimensions => {"key1" => "value1"}, :value => 42, :value_meta => {"meta_key1" => "meta_value1"}) @service.metrics.create_metric_array([metric_1, metric_2]) metric_0_identity = {:name => 'sample_metric_0', :dimensions => {"key1" => "value1"}} metric_1_identity = {:name => 'sample_metric_1', :dimensions => {"key1" => "value1"}} metric_2_identity = {:name => 'sample_metric_2', :dimensions => {"key1" => "value1"}} # list metrics filtered by name and search for previuosly created metrics by unique identifier of name,dimensions [metric_0_identity, metric_1_identity, metric_2_identity].each do |metric_identity| metrics_all = @service.metrics.all(:name => metric_identity[:name]) metrics_all.wont_be_nil metrics_all.wont_be_empty metrics_all_identities = metrics_all.collect do |_metric| {:name => metric_identity[:name], :dimensions => metric_identity[:dimensions]} end metrics_all_identities.must_include(metric_identity) end # list all metric names metrics_name_list = @service.metrics.list_metric_names metrics_name_list.wont_be_nil metrics_name_list.wont_be_empty # failure cases proc do @service.metrics.create(:name => "this won't be created due to insufficient args") end.must_raise ArgumentError proc do @service.metrics.create(:name => "this wont't be created due to invalid timestamp", :timestamp => 1234) end.must_raise ArgumentError end end it 'list measurements by name and start_time' do VCR.use_cassette('metric_measurement_list') do measurement_list = @service.measurements.find(:name => 'cpu.user_perc', :start_time => '2016-04-01T14:43:00Z', :merge_metrics => true) measurement_list.wont_be_nil measurement_list.wont_be_empty # should return an empty list measurement_list_empty = @service.measurements.find(:name => 'non.existing.metric_name', :start_time => '2016-04-01T14:43:00Z') measurement_list_empty.must_be_empty end end it 'find statistics specified by name, start_time and statistics' do VCR.use_cassette('statistics_list') do statistics_list = @service.statistics.all(:name => 'cpu.system_perc', :start_time => '2016-04-01T14:43:00Z', :statistics => 'avg,min,max,sum,count', :merge_metrics => true) statistics_list.wont_be_nil statistics_list.wont_be_empty end end it 'notification methods crud test' do VCR.use_cassette('notification-methods_crud') do begin # create notification method notification_method = @service.notification_methods.create(:name => 'important notification', :type => 'EMAIL', :address => 'admin@example.com', :period => 0) # list all notification methods notification_methods_all = @service.notification_methods.all notification_methods_all.wont_be_nil notification_methods_all.wont_be_empty # find a notification method by id notification_method_by_id = @service.notification_methods.find_by_id(notification_method.id) notification_method.must_equal notification_method_by_id # update specific an existing notification notification_method.update(:name => notification_method.name, :address => 'notification_methods@example.com', :type => notification_method.type, :period => 0) notification_method.address.must_equal 'notification_methods@example.com' notification_method.period.must_equal 0 # Delete the notification method and make sure it is no longer found in the list notification_method.destroy (@service.notification_methods.all.include? notification_method).must_equal false notification_method = nil # failure cases proc do @service.notification_methods.create(:name => "this won't be created due to insufficient args") end.must_raise ArgumentError proc do @service.notification_methods.find_by_id('bogus_id') end.must_raise Fog::OpenStack::Monitoring::NotFound ensure notification_method.destroy if notification_method end end end it 'alarm definitions crud test' do VCR.use_cassette('alarm_definition_crud') do begin # create an alarm defintion alarm_definition = @service.alarm_definitions.create( :name => 'average cpu usage in perc', :match_by => ['hostname'], :expression => '(avg(cpu.user_perc{hostname=devstack}) > 10)', :description => 'Definition for an important alarm' ) # list all alarm definitions alarm_definitions_all = @service.alarm_definitions.all alarm_definitions_all.wont_be_nil alarm_definitions_all.wont_be_empty # find an alarm-definition by id alarm_definition_by_id = @service.alarm_definitions.find_by_id(alarm_definition.id) alarm_definition.id.must_equal alarm_definition_by_id.id alarm_definition.name.must_equal alarm_definition_by_id.name alarm_definition.expression.must_equal alarm_definition_by_id.expression alarm_definition.deterministic.must_equal false # create a notification method for the following test notification_method = @service.notification_methods.create(:name => 'important notification', :type => 'EMAIL', :address => 'admin@example.com') # replace an alarm_definition alarm_definition_replaced = alarm_definition.update( :name => 'CPU percent greater than 15', :match_by => ['hostname'], :description => 'Replaced alarm-definition expression', :expression => '(avg(cpu.user_perc{hostname=devstack}) > 15)', :severity => 'LOW', :alarm_actions => [notification_method.id], :ok_actions => [notification_method.id], :undetermined_actions => [notification_method.id], :actions_enabled => true ) alarm_definition_replaced.id.must_equal alarm_definition.id alarm_definition_replaced.name.must_equal 'CPU percent greater than 15' alarm_definition_replaced.description.must_equal 'Replaced alarm-definition expression' alarm_definition_replaced.expression.must_equal '(avg(cpu.user_perc{hostname=devstack}) > 15)' # # patch specific attributes of alarm_definition alarm_definition_updated = alarm_definition.patch(:description => 'An updated alarm-definition.') alarm_definition.id.must_equal alarm_definition_updated.id alarm_definition_updated.description.must_equal 'An updated alarm-definition.' # delete alarm definition alarm_definition.destroy # ensure the alarm definition does not exist any more (@service.alarm_definitions.all.include? alarm_definition).must_equal false alarm_definition = nil # delete the notification method notification_method.destroy notification_method = nil # failure cases proc do @service.alarm_definitions.create(:name => "this won't be created due to insufficient args") end.must_raise ArgumentError ensure alarm_definition.destroy if alarm_definition notification_method.destroy if notification_method end end end it 'alarm crud test' do VCR.use_cassette('alarm_crud') do begin # create notification method notification_method = @service.notification_methods.create(:name => 'another notification', :type => 'EMAIL', :address => 'admin@example.com') # create an alarm definition which ensures an alarm is thrown alarm_definition = @service.alarm_definitions.create(:name => 'avg cpu.user_per ge 0', :expression => '(avg(cpu.user_perc) >= 0)', :description => 'ensure an alarm is thrown in crud test.') # list all alarms alarms_all = @service.alarms.all alarms_all.wont_be_nil alarms_all.wont_be_empty # list all alarms in ALARM state alarms_all_state_filter = @service.alarms.all(:state => 'OK') alarms_all_state_filter.wont_be_nil alarms_all_state_filter.wont_be_empty # get an alarm by name using list all alarms with filter alarm_list_by_name_filter = @service.alarms.all(:metric_name => 'cpu.idle_perc') alarm_by_name = alarm_list_by_name_filter.first alarm_by_name.wont_be_nil # get the id of this alarm alarm_id = alarm_by_name.id # find alarm by id alarm_by_id = @service.alarms.find_by_id(alarm_id) alarm_by_name.id.must_equal alarm_by_id.id alarm_by_name.state.must_equal alarm_by_id.state alarm_by_name.lifecycle_state.must_equal alarm_by_id.lifecycle_state # replace the entire state of the specified alarm alarm_by_id.update(:state => 'ALARM', :lifecycle_state => 'OPEN', :link => 'http://pagerduty.com/') alarm_by_id.state.must_equal 'ALARM' alarm_by_id.lifecycle_state.must_equal 'OPEN' alarm_by_id.link.must_equal 'http://pagerduty.com/' # check the link of an alarm before patching alarm_by_id.link.wont_equal 'http://somesite.com/this-alarm-info' # patch specific attributes of an existing alarm alarm_by_id.patch(:link => 'http://somesite.com/this-alarm-info') # check the link afterwards alarm_by_id.link.must_equal 'http://somesite.com/this-alarm-info' # list alarm state history for all alarms but limit history to 5 alarm_state_history_all = @service.alarm_states.all(:limit => 5) alarm_state_history_all.wont_be_nil alarm_state_history_all.length.must_equal 5 # list alarm state history alarm_state_history_for_alarm = @service.alarm_states.list_alarm_state_history(alarm_id) alarm_state_history_for_alarm.wont_be_nil alarm_state_history_for_alarm.wont_be_empty # delete an existing alarm alarm_by_id.destroy (@service.alarms.all.include? alarm_by_id).must_equal false alarm_definition = nil notification_method = nil ensure # cleanup alarm_definition.destroy if alarm_definition notification_method.destroy if notification_method end end end it 'list alarm state history for all alarms' do VCR.use_cassette('alarm_state_history_all') do # get the alarm state history for all alarms alarm_state_history_all = @service.alarm_states.all alarm_state_history_all.wont_be_nil alarm_state_history_all.wont_be_empty # get an alarm by name using list all alarms with filter alarm_by_name = @service.alarms.all(:name => 'cpu.user_perc') # get the id of this alarm alarm_id = alarm_by_name.first.id # find alarm by id @service.alarms.find_by_id(alarm_id) # get alarm state history for specific alarm alarm_state_history_for_alarm = @service.alarm_states.list_alarm_state_history(alarm_id) alarm_state_history_for_alarm.wont_be_nil alarm_state_history_for_alarm.wont_be_empty end end it 'list dimension values' do VCR.use_cassette('list_dimension_values') do # list dimension values dimension_values_by_key = @service.metrics.list_dimension_values('hostname').first dimension_values_by_key.wont_be_nil dimension_values_by_key.dimension_name.must_equal 'hostname' dimension_values_by_key.id.wont_be_nil dimension_values_by_key.values.wont_be_empty end end it 'list notification method types' do VCR.use_cassette('list_notification_method_types') do notification_method_types = @service.notification_methods.list_types notification_method_types.wont_be_nil notification_method_types.wont_be_empty notification_method_types.must_include :EMAIL notification_method_types.must_include :PAGERDUTY notification_method_types.must_include :WEBHOOK end end # FIXME: According to the API (https://github.com/openstack/monasca-api/blob/master/docs/monasca-api-spec.md) # the response body should not contain a 'id'-element, but actually it does contain "id": "null". # it 'alarm count test' do # VCR.use_cassette('alarm_crud') do # # get alarm counts # alarm_count = @service.alarm_counts.get(:metric_name => 'cpu.system_perc', # :group_by => 'state') # # alarm_count.columns.wont_be_nil # alarm_count.columns.wont_be_empty # alarm_count.counts.wont_be_nil # alarm_count.counts.wont_be_empty # end # end end fog-openstack-1.1.5/spec/network_spec.rb000066400000000000000000000076251476630434000202610ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::Network do before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => 'spec/fixtures/openstack/network', :service_class => Fog::OpenStack::Network, :project_scoped => true ) @service = openstack_vcr.service @current_project = openstack_vcr.project_name openstack_vcr = OpenStackVCR.new( :vcr_directory => 'spec/fixtures/openstack/network', :service_class => Fog::OpenStack::Identity::V3 ) @identity_service = openstack_vcr.service end it 'CRUD subnets' do VCR.use_cassette('subnets_crud') do begin foonet = @service.networks.create(:name => 'foo-net12', :shared => false) subnet = @service.subnets.create( :name => "my-network", :network_id => foonet.id, :cidr => '172.16.0.0/16', :ip_version => 4, :gateway_ip => nil ) subnet.name.must_equal 'my-network' ensure subnet.destroy if subnet foonet.destroy if foonet end end end it 'CRUD rbacs' do VCR.use_cassette('rbacs_crud') do begin own_project = @identity_service.projects.select { |p| p.name == @current_project }.first other_project = @identity_service.projects.reject { |p| p.name == @current_project }.first foonet = @service.networks.create(:name => 'foo-net23', :tenant_id => own_project.id) # create share access for other project rbac = @service.rbac_policies.create( :object_type => 'network', :object_id => foonet.id, :tenant_id => own_project.id, :target_tenant => other_project.id, :action => 'access_as_shared' ) rbac.target_tenant.must_equal other_project.id foonet.reload.shared.must_equal false @service.rbac_policies.all(:object_id => foonet.id).length.must_equal 1 # get @service.rbac_policies.find_by_id(rbac.id).wont_equal nil # change share target to own project rbac.target_tenant = own_project.id rbac.save foonet.reload.shared.must_equal true # delete the sharing rbac.destroy rbac = nil @service.rbac_policies.all(:object_id => foonet.id).length.must_equal 0 foonet.reload.shared.must_equal false ensure rbac.destroy if rbac foonet.destroy if foonet end end end it 'fails at token expiration on auth with token but not with username+password' do VCR.use_cassette('token_expiration') do @auth_token = @identity_service.credentials[:openstack_auth_token] openstack_vcr = OpenStackVCR.new( :vcr_directory => 'spec/fixtures/openstack/network', :service_class => Fog::OpenStack::Network, :project_scoped => true, :token_auth => true, :token => @auth_token ) @service_with_token = openstack_vcr.service [@service_with_token, @service].each_with_index do |service, index| @network_token = service.credentials[:openstack_auth_token] # any network object would do, take sec group - at least we have a default @before = service.security_groups.all(:limit => 2).first.tenant_id # invalidate the token, hopefully it is not a palindrome # NOTE: token_revoke does not work here, because of neutron keystone-middleware cache service.instance_variable_set("@auth_token", @network_token.reverse) # with token if index == 0 err = -> { service.security_groups.all(:limit => 2) }.must_raise Excon::Errors::Unauthorized err.message.must_match(/Authentication required/) # with username+password else @after = service.security_groups.all(:limit => 2).first.tenant_id @before.must_equal @after end end end end end fog-openstack-1.1.5/spec/shared_context.rb000066400000000000000000000157431476630434000205700ustar00rootroot00000000000000require 'vcr' # # There are basically two modes of operation for these specs. # # 1. ENV[OS_AUTH_URL] exists: talk to an actual OpenStack and record HTTP # traffic in VCRs at "spec/debug" (credentials are read from the conventional # environment variables: OS_AUTH_URL, OS_USERNAME, OS_PASSWORD etc.) # 2. otherwise (under Travis etc.): use VCRs at "spec/fixtures/openstack/#{service}" # # When you develop a new unit test or change an existing one: # # 1. Record interactions against an actual OpenStack (Devstack is usually # enough if configured correctly) using the first mode from above. # 2. Move the relevant VCRs from "spec/debug" to # "spec/fixtures/openstack/#{service}". # 3. In these VCRs, string-replace your OpenStack's URLs/IPs by # "devstack.openstack.stack". Also, string-replace the used tokens by the # token obtained in the "common_setup.yml". # class OpenStackVCR attr_reader :service, :os_auth_url, :project_name, :user_id, :username, :password, :domain_name, :domain_id, :region, :region_other, :interface, :application_credential_id, :application_credential_secret # This method should be called in a "before :all" call to set everything up. # A properly configured instance of the service class (e.g. # Fog::OpenStack::Volume) is then made available in @service. def initialize(options) # read arguments # must_be_kind_of String @vcr_directory = options[:vcr_directory] # must_be_kind_of Class @service_class = options[:service_class] # v3 by default (nil) @identity_version = options[:identity] == 'v2' ? 'v2' : 'v3' # will be used as condition @with_project_scope = options[:project_scoped] # will be used as condition @with_token_auth = options[:token_auth] # determine mode of operation use_recorded = !ENV.key?('OS_AUTH_URL') || ENV['USE_VCR'] == 'true' if use_recorded # when using the cassettes, there is no need to sleep in wait_for() Fog.interval = 0 # use an auth URL that matches our VCR recordings (IdentityV2 for most # services, but IdentityV3 test obviously needs IdentityV3 auth URL) @os_auth_url = 'http://devstack.openstack.stack:5000' else # when an auth URL is given, we talk to a real OpenStack @os_auth_url = ENV['OS_AUTH_URL'] end # setup VCR VCR.configure do |config| config.allow_http_connections_when_no_cassette = true config.hook_into :webmock if use_recorded config.cassette_library_dir = ENV['SPEC_PATH'] || @vcr_directory config.default_cassette_options = {:record => :none} config.default_cassette_options.merge! :match_requests_on => %i[method uri body] else config.cassette_library_dir = "spec/debug" config.default_cassette_options = {:record => :all} end config.before_playback do |interaction| # shift issued_at and expires_at to Time.now and Time.now + 1.day in json cassette body next unless interaction.response.headers["Content-Type"] == ["application/json"] interaction.response.body.scan(/"(issued_at|expires_at)": "(.*?)"/m).each do |match| time_to = case match[0] when 'issued_at' then Time.now when 'expires_at' then Time.now + 86400 end interaction.response.body.gsub!("\"#{match[0]}\": \"#{match[1]}\"", "\"#{match[0]}\": \"#{time_to}\"") end end end # allow us to ignore dev certificates on servers Excon.defaults[:ssl_verify_peer] = false if ENV['SSL_VERIFY_PEER'] == 'false' # setup the service object VCR.use_cassette('common_setup') do Fog::OpenStack.clear_token_cache @region = 'RegionOne' @region_other = 'europe' @password = 'password' @user_id = '205e0e39a2534743b517ed0aa2fbcda7' @username = 'admin' # keep in sync with the token obtained in the "common_setup.yml" @token = '5c28403cf669414d8ee179f1e7f205ee' @interface = 'admin' @domain_id = 'default' @domain_name = 'Default' @project_name = 'admin' @application_credential_id = '423f19a4ac1e4f48bbb4180756e6eb6c' @application_credential_secret = 'rEaqvJka48mpv' unless use_recorded @region = ENV['OS_REGION_NAME'] || options[:region_name] || @region @region_other = ENV['OS_REGION_OTHER'] || options[:region_other] || @region_other @password = ENV['OS_PASSWORD'] || options[:password] || @password @username = ENV['OS_USERNAME'] || options[:username] || @username @user_id = ENV['OS_USER_ID'] || options[:user_id] || @user_id @token = ENV['OS_TOKEN'] || options[:token] || @token @interface = ENV['OS_INTERFACE'] || options[:interface] || @interface @domain_name = ENV['OS_USER_DOMAIN_NAME'] || options[:domain_name] || @domain_name @domain_id = ENV['OS_USER_DOMAIN_ID'] || options[:domain_id] || @domain_id @project_name = ENV['OS_PROJECT_NAME'] || options[:project_name] || @project_name @application_credential_id = ENV['OS_APPLICATION_CREDENTIAL_ID'] || options[:application_credential_id] || @application_credential_id @application_credential_secret = ENV['OS_APPLICATION_CREDENTIAL_SECRET'] || options[:application_credential_secret] || @application_credential_secret end # TODO: remove # if @service_class == Fog::OpenStack::Identity::V3 || @os_auth_url.end_with?('/v3') if @identity_version == 'v3' connection_options = { :openstack_auth_url => @os_auth_url, :openstack_region => @region, :openstack_domain_name => @domain_name, :openstack_endpoint_type => @interface, :openstack_cache_ttl => 0 } connection_options[:openstack_project_name] = @project_name if @with_project_scope connection_options[:openstack_service_type] = [ENV['OS_AUTH_SERVICE']] if ENV['OS_AUTH_SERVICE'] else connection_options = { :openstack_auth_url => @os_auth_url, :openstack_region => @region, :openstack_tenant => @project_name, :openstack_cache_ttl => 0 # FIXME: Identity V3 not properly supported by other services yet # :openstack_user_domain => ENV['OS_USER_DOMAIN_NAME'] || 'Default', # :openstack_project_domain => ENV['OS_PROJECT_DOMAIN_NAME'] || 'Default', } end if @with_token_auth connection_options[:openstack_auth_token] = @token else connection_options[:openstack_username] = @username connection_options[:openstack_api_key] = @password end @service = @service_class.new(connection_options) end end end fog-openstack-1.1.5/spec/shared_file_system_spec.rb000066400000000000000000000216241476630434000224340ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' describe Fog::OpenStack::SharedFileSystem do spec_data_folder = 'spec/fixtures/openstack/shared_file_system' before :all do openstack_vcr = OpenStackVCR.new( :vcr_directory => spec_data_folder, :project_scoped => true, :service_class => Fog::OpenStack::SharedFileSystem ) @service = openstack_vcr.service net_openstack_vcr = OpenStackVCR.new( :vcr_directory => spec_data_folder, :project_scoped => true, :service_class => Fog::OpenStack::Network ) @network_service = net_openstack_vcr.service end it 'CRUD & list shares' do VCR.use_cassette('share_crud') do share_protocol = 'NFS' share_size = 1 share_name = 'fog_share' share_net_name = 'fog_share_net' share_description = 'used by fog' share_updated_description = 'still used by fog' begin # assuming a network exists net = @network_service.networks.first # create a share network share_network = @service.networks.create( :neutron_net_id => net.id, :neutron_subnet_id => net.subnets.first.id, :name => share_net_name ) # create share example_share = @service.shares.create( :share_proto => share_protocol, :size => share_size, :name => share_name, :description => share_description, :share_network_id => share_network.id ) example_share.status.must_equal 'creating' example_id = example_share.id # update display description example_share.update(:display_description => share_updated_description) example_share.reload.description.must_equal share_updated_description # get by ID example_share_by_id = @service.shares.find_by_id example_id example_share_by_id.wont_equal nil example_share_by_id.name.must_equal share_name # get by filtering list by name shares = @service.shares.all(:name => share_name) shares.length.must_equal 1 shares.first.id.must_equal example_id ensure # delete the share(s) @service.shares.all(:name => share_name).each(&:destroy) # check delete action @service.shares.all(:name => share_name).length.must_equal 0 # delete the share network @service.networks.all(:name => share_net_name).each(&:destroy) end end end it "CRUD & list share_networks" do VCR.use_cassette('share_net_crud') do share_net_name = 'fog_share_network' share_net_description = 'used by fog' share_net_updated_description = 'still used by fog' begin # assuming a network exists net = @network_service.networks.first # create a share network share_network = @service.networks.create( :neutron_net_id => net.id, :neutron_subnet_id => net.subnets.first.id, :name => share_net_name, :description => share_net_description ) share_network.description.must_equal share_net_description share_net_id = share_network.id # update description share_network.update(:description => share_net_updated_description) share_network.reload.description.must_equal share_net_updated_description # get by ID share_net_by_id = @service.networks.find_by_id share_net_id share_net_by_id.wont_equal nil share_net_by_id.name.must_equal share_net_name # get by filtering list by name share_nets = @service.networks.all(:name => share_net_name) share_nets.length.must_equal 1 share_nets.first.id.must_equal share_net_id ensure # delete the share network @service.networks.all(:name => share_net_name).each(&:destroy) # check delete action @service.networks.all(:name => share_net_name).length.must_equal 0 end end end it 'CRUD & list share_snapshots' do VCR.use_cassette('share_snap_crud') do share_protocol = 'NFS' share_size = 1 share_name = 'fog_share' share_net_name = 'fog_share_net' snap_name = 'fog_snap' snap_updated_name = 'fog_snap_updated' begin # assuming a network exists net = @network_service.networks.first # create a share network share_network = @service.networks.create( :neutron_net_id => net.id, :neutron_subnet_id => net.subnets.first.id, :name => share_net_name ) # create share example_share = @service.shares.create( :share_proto => share_protocol, :size => share_size, :name => share_name, :share_network_id => share_network.id ) example_share.wait_for { ready? } # create snapshot snap = @service.snapshots.create( :share_id => example_share.id, :name => snap_name ) snap.name.must_equal snap_name snap_id = snap.id snap.wait_for { ready? } # get by ID snap_by_id = @service.snapshots.find_by_id snap_id snap_by_id.wont_equal nil snap_by_id.name.must_equal snap_name # update name via display_name snap_by_id.update(:display_name => snap_updated_name) snap_by_id.reload.name.must_equal snap_updated_name # get by filtering list by name snaps = @service.snapshots.all(:name => snap_updated_name) snaps.length.must_equal 1 snaps.first.id.must_equal snap_id ensure # delete the snapshot(s) @service.snapshots.all(:name => snap_updated_name).each(&:destroy) # check delete action @service.snapshots.all(:name => snap_updated_name).each do |s| s.status.must_equal 'deleting' end # only can go on when the snapshots are gone Fog.wait_for do begin snaps = @service.snapshots.all(:name => snap_updated_name) snaps.length.zero? end end # delete the share(s) @service.shares.all(:name => share_name).each(&:destroy) # only can go on when the shares are gone Fog.wait_for do begin shares = @service.shares.all(:name => share_name) shares.length.zero? end end # delete the share network(s) @service.networks.all(:name => share_net_name).each(&:destroy) end end end it 'acts on shares' do VCR.use_cassette('share_actions') do share_protocol = 'NFS' share_size_small = 1 share_size_big = 2 share_name = 'fog_share_action' share_net_name = 'fog_share_action_net' share_access_type = 'ip' begin # assuming a network exists net = @network_service.networks.first # create a share network share_network = @service.networks.create( :neutron_net_id => net.id, :neutron_subnet_id => net.subnets.first.id, :name => share_net_name ) # create share share = @service.shares.create( :share_proto => share_protocol, :size => share_size_small, :name => share_name, :share_network_id => share_network.id ) share.wait_for { ready? } # modify share sizes share.size.must_equal share_size_small share.extend(share_size_big) share.wait_for { ready? } share.size.must_equal share_size_big share.shrink(share_size_small) share.wait_for { ready? } share.size.must_equal share_size_small # modify share access share.access_rules.length.must_equal 0 access_rule = share.access_rules.create( :access_type => share_access_type, :access_to => '10.0.0.2', :access_level => 'ro' ) rules = share.access_rules rules.length.must_equal 1 new_rule = rules.first new_rule.wait_for { ready? } new_rule.access_type.must_equal share_access_type new_rule.id.must_equal access_rule.id share.revoke_access(access_rule.id) Fog.wait_for { share.access_rules.empty? } ensure # delete the share(s) @service.shares.all(:name => share_name).each(&:destroy) # only can go on when the shares are gone Fog.wait_for do begin shares = @service.shares.all(:name => share_name) shares.length.zero? end end # delete the share network(s) @service.networks.all(:name => share_net_name).each(&:destroy) end end end end fog-openstack-1.1.5/spec/spec_helper.rb000066400000000000000000000005361476630434000200410ustar00rootroot00000000000000# TODO: remove when https://github.com/fog/fog-openstack/issues/202 is fixed # require 'coveralls' # Coveralls.wear! require 'minitest/autorun' require 'vcr' require 'fog/core' require 'fog/openstack' VCR.configure do |c| c.cassette_library_dir = 'spec/fixtures/openstack' c.hook_into :webmock c.debug_logger = nil # use $stderr to debug end fog-openstack-1.1.5/spec/volume_spec.rb000066400000000000000000000562701476630434000200770ustar00rootroot00000000000000require 'spec_helper' require_relative './shared_context' [ Fog::OpenStack::Volume, Fog::OpenStack::Volume::V1, Fog::OpenStack::Volume::V2 ].delete_if { |the_class| ENV['TEST_CLASS'] && ENV['TEST_CLASS'] != the_class.name }.each do |service_class| describe service_class do before :all do vcr_directory = 'spec/fixtures/openstack/volume' if service_class == Fog::OpenStack::Volume vcr_directory = 'spec/fixtures/openstack/volume_v1' if service_class == Fog::OpenStack::Volume::V1 vcr_directory = 'spec/fixtures/openstack/volume_v2' if service_class == Fog::OpenStack::Volume::V2 openstack_vcr = OpenStackVCR.new( :vcr_directory => vcr_directory, :service_class => service_class ) @service = openstack_vcr.service @os_auth_url = openstack_vcr.os_auth_url # Account for the different parameter naming between v1 and v2 services @name_param = :display_name unless v2? @name_param = :name if v2? @description_param = :display_description unless v2? @description_param = :description if v2? end def v2? @service.kind_of? Fog::OpenStack::Volume::V2::Real end def setup_test_object(options) type = options.delete(:type) case type when :volume puts "Checking for leftovers..." if ENV['DEBUG_VERBOSE'] volume_name = options[@name_param] # if this fails, cleanup this object (it was left over from a failed test run) @service.volumes.all(@name_param => volume_name).length.must_equal 0 puts "Creating volume #{volume_name}..." if ENV['DEBUG_VERBOSE'] return @service.volumes.create(options) when :transfer puts "Checking for leftovers..." if ENV['DEBUG_VERBOSE'] transfer_name = options[:name] # if this fails, cleanup this object (it was left over from a failed test run) @service.transfers.all(:name => transfer_name).length.must_equal 0 puts "Creating transfer #{transfer_name}..." if ENV['DEBUG_VERBOSE'] return @service.transfers.create(options) when :snapshot puts "Checking for leftovers..." if ENV['DEBUG_VERBOSE'] snapshot_name = options[@name_param] # if this fails, cleanup this object (it was left over from a failed test run) @service.snapshots.all(@name_param => snapshot_name).length.must_equal 0 puts "Creating snapshot #{snapshot_name}..." if ENV['DEBUG_VERBOSE'] return @service.snapshots.create(options) else raise ArgumentError, "don't know how to setup a test object of type #{type.inspect}" end end def cleanup_test_object(collection, id) # wait for the object to be deletable Fog.wait_for do begin object = collection.get(id) puts "Current status: #{object ? object.status : 'deleted'}" if ENV['DEBUG_VERBOSE'] object.nil? || (%w[available error].include? object.status.downcase) end end object = collection.get(id) if object && object.status.casecmp('awaiting-transfer').zero? object.reset_status 'available' end puts "Deleting object #{object.class} #{id}..." if ENV['DEBUG_VERBOSE'] object.destroy if object # wait for the object to be deleted Fog.wait_for do begin object = collection.get(id) puts "Current status: #{object ? object.status : 'deleted'}" if ENV['DEBUG_VERBOSE'] object.nil? end end end it 'CRUD volumes' do VCR.use_cassette('volume_crud') do begin volume_name = "fog-testvolume-1" volume_description = 'This is the volume description.' volume_new_description = 'This is the updated volume description.' volume_new_name = "fog-updated-testvolume-1" volume_size = 1 # in GB # create volume volume_id = setup_test_object(:type => :volume, @name_param => volume_name, @description_param => volume_description, :size => volume_size).id @service.volumes.all(@name_param => volume_name).length.must_equal 1 # check retrieval of volume by ID puts "Retrieving volume by ID..." if ENV['DEBUG_VERBOSE'] volume = @service.volumes.get(volume_id) volume.must_be_kind_of Fog::OpenStack::Volume::Volume volume.id.must_equal volume_id volume.display_name.must_equal volume_name unless v2? volume.name.must_equal volume_name if v2? volume.display_description.must_equal volume_description unless v2? volume.description.must_equal volume_description if v2? volume.size.must_equal volume_size puts "Waiting for volume to be available..." if ENV['DEBUG_VERBOSE'] volume.wait_for { ready? } # check retrieval of volume by name puts "Retrieving volume by name..." if ENV['DEBUG_VERBOSE'] volumes = @service.volumes.all(@name_param => volume_name) volumes.length.must_equal 1 volume = volumes[0] volume.must_be_kind_of Fog::OpenStack::Volume::Volume volume.id.must_equal volume_id volume.display_name.must_equal volume_name unless v2? volume.name.must_equal volume_name if v2? volume.display_description.must_equal volume_description unless v2? volume.description.must_equal volume_description if v2? volume.size.must_equal volume_size # Update the volume's name volume.update(@name_param => volume_new_name) volumes = @service.volumes.all(@name_param => volume_new_name) volume = volumes.first volume.must_be_kind_of Fog::OpenStack::Volume::Volume volume.display_name.must_equal volume_new_name unless v2? volume.name.must_equal volume_new_name if v2? # Check that save does an update volume.description = volume_new_description if v2? volume.display_description = volume_new_description unless v2? volume.save volume = @service.volumes.get(volume_id) volume.display_description.must_equal volume_new_description unless v2? volume.description.must_equal volume_new_description if v2? ensure # delete volume cleanup_test_object(@service.volumes, volume_id) end end end it 'reads volume types' do VCR.use_cassette('volume_type_read') do # list all volume types puts "Listing volume types..." if ENV['DEBUG_VERBOSE'] types = @service.volume_types.all types.length.must_be :>, 0 types.each do |type| type.name.must_be_kind_of String end type_id = types[0].id type_name = types[0].name # get a single volume type by ID puts "Retrieving volume type by ID..." if ENV['DEBUG_VERBOSE'] type = @service.volume_types.get(type_id) type.must_be_kind_of Fog::OpenStack::Volume::VolumeType type.id.must_equal type_id type.name.must_equal type_name # get a single volume type by name puts "Retrieving volume type by name..." if ENV['DEBUG_VERBOSE'] type = @service.volume_types.all(type_name).first type.must_be_kind_of Fog::OpenStack::Volume::VolumeType type.id.must_equal type_id type.name.must_equal type_name end end it 'can extend volumes' do VCR.use_cassette('volume_extend') do begin volume_size_small = 1 # in GB volume_size_large = 2 # in GB volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => volume_size_small) volume.wait_for { ready? && size == volume_size_small } # extend volume puts "Extending volume..." if ENV['DEBUG_VERBOSE'] volume.extend(volume_size_large) volume.wait_for do status == 'error_extending' || (ready? && size == volume_size_large) end volume.status.wont_equal 'error_extending' # shrinking is not allowed in OpenStack puts "Shrinking volume should fail..." if ENV['DEBUG_VERBOSE'] proc do volume.extend(volume_size_small) end.must_raise(Excon::Errors::BadRequest, /Invalid input received: New size for extend must be greater than current size./) ensure # delete volume cleanup_test_object(@service.volumes, volume.nil? ? nil : volume.id) # check that extending a non-existing volume fails puts "Extending deleted volume should fail..." if ENV['DEBUG_VERBOSE'] proc { @service.extend_volume(volume.id, volume_size_small) }.must_raise Fog::OpenStack::Volume::NotFound end end end it 'can create and accept volume transfers' do VCR.use_cassette('volume_transfer_and_accept') do begin transfer_name = 'fog-testtransfer-1' # create volume object volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => 1) volume.wait_for { ready? } # create transfer object transfer = setup_test_object(:type => :transfer, :name => transfer_name, :volume_id => volume.id) # we need to save the auth_key NOW, it's only present in the response # from the create_transfer request auth_key = transfer.auth_key transfer_id = transfer.id # check retrieval of transfer by ID puts 'Retrieving transfer by ID...' if ENV['DEBUG_VERBOSE'] transfer = @service.transfers.get(transfer_id) transfer.must_be_kind_of Fog::OpenStack::Volume::Transfer transfer.id.must_equal transfer_id transfer.name.must_equal transfer_name transfer.volume_id.must_equal volume.id # check retrieval of transfer by name puts 'Retrieving transfer by name...' if ENV['DEBUG_VERBOSE'] transfers = @service.transfers.all(:name => transfer_name) transfers.length.must_equal 1 transfer = transfers[0] transfer.must_be_kind_of Fog::OpenStack::Volume::Transfer transfer.id.must_equal transfer_id transfer.name.must_equal transfer_name transfer.volume_id.must_equal volume.id # to accept the transfer, we need a second connection to a different project puts 'Checking object visibility from different projects...' if ENV['DEBUG_VERBOSE'] other_service = service_class.new( :openstack_auth_url => @os_auth_url, :openstack_region => ENV['OS_REGION_NAME'] || 'RegionOne', :openstack_api_key => ENV['OS_PASSWORD_OTHER'] || 'password', :openstack_username => ENV['OS_USERNAME_OTHER'] || 'demo', :openstack_domain_name => ENV['OS_USER_DOMAIN_NAME'] || 'Default', :openstack_project_name => ENV['OS_PROJECT_NAME_OTHER'] || 'demo' ) # check that recipient cannot see the transfer object assert_nil other_service.transfers.get(transfer.id) other_service.transfers.all(:name => transfer_name).length.must_equal 0 # # check that recipient cannot see the volume before transfer # proc { other_service.volumes.get(volume.id) }.must_raise Fog::OpenStack::Compute::NotFound # other_service.volumes.all(@name_param => volume_name).length.must_equal 0 # The recipient can inexplicably see the volume even before the # transfer, so to confirm that the transfer happens, we record its tenant ID. volume.tenant_id.must_match(/^[0-9a-f-]+$/) # should look like a UUID source_tenant_id = volume.tenant_id # check that accept_transfer fails without valid transfer ID and auth key bogus_uuid = 'ec8ff7e8-81e2-4e12-b9fb-3e8890612c2d' # from Fog::UUID.uuid, but fixed to play nice with VCR proc { other_service.transfers.accept(bogus_uuid, auth_key) }.must_raise Fog::OpenStack::Volume::NotFound proc { other_service.transfers.accept(transfer_id, 'invalidauthkey') }.must_raise Excon::Errors::BadRequest # accept transfer puts 'Accepting transfer...' if ENV['DEBUG_VERBOSE'] transfer = other_service.transfers.accept(transfer.id, auth_key) transfer.must_be_kind_of Fog::OpenStack::Volume::Transfer transfer.id.must_equal transfer_id transfer.name.must_equal transfer_name # check that recipient can see the volume volume = other_service.volumes.get(volume.id) volume.must_be_kind_of Fog::OpenStack::Volume::Volume # # check that sender cannot see the volume anymore # proc { @service.volumes.get(volume.id) }.must_raise Fog::OpenStack::Compute::NotFound # @service.volumes.all(@name_param => volume_name).length.must_equal 0 # As noted above, both users seem to be able to see the volume at all times. # Check change of ownership by looking at the tenant_id, instead. volume.tenant_id.must_match(/^[0-9a-f-]+$/) # should look like a UUID volume.tenant_id.wont_equal(source_tenant_id) # check that the transfer object is gone on both sides [@service, other_service].each do |service| assert_nil service.transfers.get(transfer.id) service.transfers.all(:name => transfer_name).length.must_equal 0 end ensure # cleanup volume cleanup_test_object(other_service.volumes, volume.nil? ? nil : volume.id) if other_service cleanup_test_object(@service.volumes, volume.nil? ? nil : volume.id) unless other_service end end end it 'can create and delete volume transfers (v2 only)' do if v2? VCR.use_cassette('volume_transfer_and_delete') do begin # create volume object volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => 1) volume.wait_for { ready? } # create transfer object transfer = setup_test_object(:type => :transfer, :name => 'fog-testtransfer-1', :volume_id => volume.id) # we need to save the auth_key NOW, it's only present in the response # from the create_transfer request auth_key = transfer.auth_key transfer_id = transfer.id # to try to accept the transfer, we need a second connection to a different project other_service = service_class.new( :openstack_auth_url => @os_auth_url, :openstack_region => ENV['OS_REGION_NAME'] || 'RegionOne', :openstack_api_key => ENV['OS_PASSWORD_OTHER'] || 'password', :openstack_username => ENV['OS_USERNAME_OTHER'] || 'demo', :openstack_domain_name => ENV['OS_USER_DOMAIN_NAME'] || 'Default', :openstack_project_name => ENV['OS_PROJECT_NAME_OTHER'] || 'demo' ) # delete transfer again transfer.destroy # check that transfer cannot be accepted when it has been deleted puts 'Checking that accepting a deleted transfer fails...' if ENV['DEBUG_VERBOSE'] proc { other_service.transfers.accept(transfer_id, auth_key) }.must_raise Fog::OpenStack::Volume::NotFound ensure # cleanup volume cleanup_test_object(@service.volumes, volume.id) if volume end end end end it 'can create, update and delete volume snapshots' do VCR.use_cassette('volume_snapshot_and_delete') do begin # create volume object volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => 1) volume.wait_for { ready? } # create snapshot object snapshot = setup_test_object(:type => :snapshot, @name_param => 'fog-testsnapshot-1', @description_param => 'Test snapshot', :volume_id => volume.id) snapshot_id = snapshot.id # wait for the snapshot to be available Fog.wait_for do begin object = @service.snapshots.get(snapshot.id) object.wont_be_nil puts "Current status: #{object ? object.status : 'deleted'}" if ENV['DEBUG_VERBOSE'] object.nil? || (%w[available error].include? object.status.downcase) end end # Update snapshot snapshot.update(@description_param => 'Updated description') updated_snapshot = @service.snapshots.get(snapshot.id) updated_snapshot.description.must_equal 'Updated description' if v2? updated_snapshot.display_description.must_equal 'Updated description' unless v2? # delete snapshot snapshot.destroy # wait for the snapshot to be deleted Fog.wait_for do begin object = @service.snapshots.get(snapshot_id) puts "Current status: #{object ? object.status : 'deleted'}" if ENV['DEBUG_VERBOSE'] object.nil? end end ensure # cleanup volume begin snapshot.destroy if snapshot rescue Fog::OpenStack::Volume::NotFound # Don't care if it doesn't exist end cleanup_test_object(@service.volumes, volume.id) if volume end end end it 'can create, update and delete volume metadata' do VCR.use_cassette('volume_metadata_crud') do begin # create volume object with metadata volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => 1, :metadata => {'some_metadata' => 'this is meta', 'more_metadata' => 'even more meta'}) volume.wait_for { ready? } updated_volume = @service.volumes.get(volume.id) check_metadata = updated_volume.metadata check_metadata.size.must_equal 2 check_metadata['some_metadata'].must_equal 'this is meta' check_metadata['more_metadata'].must_equal 'even more meta' # update metadata volume.update_metadata('some_metadata' => 'this is updated', 'new_metadata' => 'this is new') updated_volume = @service.volumes.get(volume.id) check_metadata = updated_volume.metadata check_metadata.size.must_equal 3 check_metadata['some_metadata'].must_equal 'this is updated' check_metadata['more_metadata'].must_equal 'even more meta' check_metadata['new_metadata'].must_equal 'this is new' # replace metadata volume.replace_metadata('some_metadata' => 'this is updated again', 'newer_metadata' => 'this is newer') updated_volume = @service.volumes.get(volume.id) check_metadata = updated_volume.metadata check_metadata.size.must_equal 2 check_metadata['some_metadata'].must_equal 'this is updated again' check_metadata['newer_metadata'].must_equal 'this is newer' # delete metadata volume.delete_metadata('some_metadata') updated_volume = @service.volumes.get(volume.id) check_metadata = updated_volume.metadata check_metadata.size.must_equal 1 check_metadata['newer_metadata'].must_equal 'this is newer' ensure # cleanup volume cleanup_test_object(@service.volumes, volume.id) if volume end end end it 'can create, update and delete volume snapshot metadata' do VCR.use_cassette('volume_snapshot_metadata_crud') do begin # create volume object with metadata volume = setup_test_object(:type => :volume, @name_param => 'fog-testvolume-1', :size => 1, :metadata => {'some_metadata' => 'this is meta', 'more_metadata' => 'even more meta'}) volume.wait_for { ready? } # create snapshot object snapshot = setup_test_object(:type => :snapshot, @name_param => 'fog-testsnapshot-1', @description_param => 'Test snapshot', :volume_id => volume.id) snapshot_id = snapshot.id # wait for the snapshot to be available Fog.wait_for do begin object = @service.snapshots.get(snapshot_id) object.wont_be_nil puts "Current status: #{object ? object.status : 'deleted'}" if ENV['DEBUG_VERBOSE'] object.nil? || (%w[available error].include? object.status.downcase) end end updated_snapshot = @service.snapshots.get(snapshot_id) check_metadata = updated_snapshot.metadata check_metadata.size.must_equal 0 # update metadata snapshot.update_metadata('some_snapshot_metadata' => 'this is data', 'new_snapshot_metadata' => 'this is new') updated_snapshot = @service.snapshots.get(snapshot_id) check_metadata = updated_snapshot.metadata check_metadata.size.must_equal 2 check_metadata['some_snapshot_metadata'].must_equal 'this is data' check_metadata['new_snapshot_metadata'].must_equal 'this is new' # delete metadata snapshot.delete_metadata('some_snapshot_metadata') updated_snapshot = @service.snapshots.get(snapshot_id) check_metadata = updated_snapshot.metadata check_metadata.size.must_equal 1 check_metadata['new_snapshot_metadata'].must_equal 'this is new' ensure # cleanup volume cleanup_test_object(@service.snapshots, snapshot.id) if snapshot cleanup_test_object(@service.volumes, volume.id) if volume end end end # TODO: tests for snapshots it 'responds to list_snapshots_detailed' do @service.respond_to?(:list_snapshots_detailed).must_equal true end # TODO: tests for quotas end end fog-openstack-1.1.5/supported.md000066400000000000000000000046621476630434000166440ustar00rootroot00000000000000# Supported OpenStack Projects ## Supported | Project | Fog Type | API Version(s) | Compliance | Notes | |------------------|--------------------|----------------|------------|-------| | Barbican | Key Manager | v1 | TBD | | | Ceilometer | Metering | v2 | TBD | | | Cinder | Volume | v1, v2, v3 | TBD | | | Designate | DNS | v1, v2 | TBD | | | Glance | Image | v1, v2 | TBD | | | Gnocci | Metric | v1 | TBD | | | Heat | Orchestration | v1 | TBD | | | Ironic | Bare Metal | v1 | TBD | | | Ironic Inspector | Introspection | v1 | TBD | | | Keystone | Identity | v2, v3 | TBD | | | Magnum | Container Infra | v1 | TBD | | | Manila | Shared File System | v2.0 | TBD | | | Mistral | Workflow | v2.0 | TBD | | | Monasca | Monitoring | v2.0 | TBD | | | Neutron | Network | v2 | TBD | | | Nova | Compute | v2.0 | TBD | | | Panko | Event | v2 | TBD | | | Swift | Storage | v2 | TBD | | | Tacker | NFV | v1 | TBD | | | Tuskar | TripleO Planning | v1 | TBD | | ## Wish List Feel free to submit pull requests to add support for these. * [congress](https://wiki.openstack.org/wiki/Congress) (Policy As a Service) * [trove](https://wiki.openstack.org/wiki/Trove) (DBaaS) ## Unsupported * aodh (Telemetry Alarms) * astara (Network) * cloudkitty (Telemetry) * cue (Messaging) * dragonflow (Network) * ec2-api (Compatibility Layer) * freezer (Disaster Recovery) * fuel (Orchestration) * horizon (Web Frontend) * kolla (Containers) * kuryr (Containers) * murano (Catalog Service) * rally (Benchmarking) * sahara (Map-Reduce) * searchlight (Searching) * senlin (Clustering) * solum (Lifecycle) * tripleo (Orchestration) * zaqar (Messaging) fog-openstack-1.1.5/test/000077500000000000000000000000001476630434000152445ustar00rootroot00000000000000fog-openstack-1.1.5/test/authenticate_tests.rb000066400000000000000000000143431476630434000214760ustar00rootroot00000000000000require 'test_helper' describe "OpenStack authentication" do before do @old_mock_value = Excon.defaults[:mock] Excon.defaults[:mock] = true Excon.stubs.clear @expires = Time.now.utc + 600 @token = Fog::Mock.random_numbers(8).to_s @tenant_token = Fog::Mock.random_numbers(8).to_s @body = { "access" => { "token" => { "expires" => @expires.iso8601, "id" => @token, "tenant" => { "enabled" => true, "description" => nil, "name" => "admin", "id" => @tenant_token, } }, "serviceCatalog" => [ { "endpoints" => [ { "adminURL" => "http://example:8774/v2/#{@tenant_token}", "region" => "RegionOne", "internalURL" => "http://example:8774/v2/#{@tenant_token}", "id" => Fog::Mock.random_numbers(8).to_s, "publicURL" => "http://example:8774/v2/#{@tenant_token}" } ], "endpoints_links" => [], "type" => "compute", "name" => "nova" }, { "endpoints" => [ { "adminURL" => "http://example:9292", "region" => "RegionOne", "internalURL" => "http://example:9292", "id" => Fog::Mock.random_numbers(8).to_s, "publicURL" => "http://example:9292" } ], "endpoints_links" => [], "type" => "image", "name" => "glance" } ], "user" => { "username" => "admin", "roles_links" => [], "id" => Fog::Mock.random_numbers(8).to_s, "roles" => [ {"name" => "admin"}, {"name" => "KeystoneAdmin"}, {"name" => "KeystoneServiceAdmin"} ], "name" => "admin" }, "metadata" => { "is_admin" => 0, "roles" => [ Fog::Mock.random_numbers(8).to_s, Fog::Mock.random_numbers(8).to_s, Fog::Mock.random_numbers(8).to_s ] } } } end it "with v2" do Excon.stub( {:method => 'POST', :path => "/v2.0/tokens"}, {:status => 200, :body => Fog::JSON.encode(@body)} ) expected = { :user => @body['access']['user'], :tenant => @body['access']['token']['tenant'], :server_management_url => @body['access']['serviceCatalog']. first['endpoints'].first['publicURL'], :token => @token, :expires => @expires.iso8601, :current_user_id => @body['access']['user']['id'], :unscoped_token => @token } assert(expected) do Fog::OpenStack.authenticate_v2( :openstack_auth_uri => URI('http://example'), :openstack_tenant => 'admin', :openstack_service_type => %w[compute]) end end it "validates token" do creds = { :openstack_auth_url => 'http://openstack:35357', :openstack_identity_api_version => 'v2.0' } identity = Fog::OpenStack::Identity.new(creds) identity.validate_token(@token, @tenant_token) identity.validate_token(@token) end it "checks token" do creds = { :openstack_auth_url => 'http://openstack:35357', :openstack_identity_api_version => 'v2.0' } identity = Fog::OpenStack::Identity.new(creds) identity.check_token(@token, @tenant_token) identity.check_token(@token) end it "v2 missing service" do Excon.stub( {:method => 'POST', :path => "/v2.0/tokens"}, {:status => 200, :body => Fog::JSON.encode(@body)}) service = Object.new service.extend(Fog::OpenStack::Core) service.send( :setup, :openstack_auth_url => 'http://example', :openstack_tenant => 'admin', :openstack_service_type => %w[network], :openstack_api_key => 'secret', :openstack_username => 'user') proc do service.send(:authenticate) end.must_raise Fog::OpenStack::Auth::Catalog::ServiceTypeError end it "v2 missing storage service" do Excon.stub( {:method => 'POST', :path => "/v2.0/tokens"}, {:status => 200, :body => Fog::JSON.encode(@body)} ) service = Object.new service.extend(Fog::OpenStack::Core) service.send( :setup, :openstack_auth_url => 'http://example', :openstack_tenant => 'admin', :openstack_api_key => 'secret', :openstack_username => 'user', :openstack_service_type => 'object-store') proc do service.send(:authenticate) end.must_raise Fog::OpenStack::Auth::Catalog::ServiceTypeError end it "v2 auth with two compute services" do body_clone = @body.clone body_clone["access"]["serviceCatalog"] << { "endpoints" => [ { "adminURL" => "http://example2:8774/v2/#{@tenant_token}", "region" => "RegionOne", "internalURL" => "http://example2:8774/v2/#{@tenant_token}", "id" => Fog::Mock.random_numbers(8).to_s, "publicURL" => "http://example2:8774/v2/#{@tenant_token}" } ], "endpoints_links" => [], "type" => "compute", "name" => "nova2" } Excon.stub( {:method => 'POST', :path => "/v2.0/tokens"}, {:status => 200, :body => Fog::JSON.encode(body_clone)}) service = Object.new service.extend(Fog::OpenStack::Core) service.send( :setup, :openstack_auth_url => 'http://example', :openstack_tenant => 'admin', :openstack_api_key => 'secret', :openstack_username => 'user', :openstack_service_type => 'compute') proc do service.send(:authenticate) end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError, 'Multiple endpoints found' end after do Excon.stubs.clear Excon.defaults[:mock] = @old_mock_value end end fog-openstack-1.1.5/test/fixtures/000077500000000000000000000000001476630434000171155ustar00rootroot00000000000000fog-openstack-1.1.5/test/fixtures/introspection.yaml000066400000000000000000000224031476630434000227020ustar00rootroot00000000000000--- :rules: - description: Successful Rule actions: - action: set-attribute path: /extra/rule_success value: 'yes' conditions: - field: memory_mb op: ge value: 256 - field: local_gb op: ge value: 1 links: - href: /v1/rules/8dbc8e15-506e-4bd1-82e7-b090e0d33cae rel: self uuid: 8dbc8e15-506e-4bd1-82e7-b090e0d33cae - description: Failing Rule actions: - action: set-attribute path: /extra/rule_success value: 'no' - action: fail message: This rule should not have run conditions: - field: memory_mb op: lt value: 42 - field: local_gb op: eq value: 0 links: - href: /v1/rules/abf9337e-a38d-4041-ba7a-d4e5ac0cc134 rel: self uuid: abf9337e-a38d-4041-ba7a-d4e5ac0cc134 :introspection_data: cpu_arch: x86_64 macs: - 52:54:00:40:d0:11 root_disk: rotational: true vendor: '0x1af4' name: "/dev/vda" wwn_vendor_extension: wwn_with_extension: model: '' wwn: serial: size: 64424509440 extra: network: eth0: vlan-challenged: off [fixed] tx-udp_tnl-segmentation: off [fixed] ipv4-network: 192.0.2.0 rx-vlan-stag-filter: off [fixed] highdma: on [fixed] tx-nocache-copy: 'off' tx-gso-robust: off [fixed] fcoe-mtu: off [fixed] netns-local: off [fixed] udp-fragmentation-offload: 'on' serial: 52:54:00:40:d0:11 latency: 0 tx-checksumming/tx-checksum-ipv6: off [fixed] tx-checksumming/tx-checksum-ipv4: off [fixed] ipv4-netmask: 255.255.255.0 tcp-segmentation-offload/tx-tcp-segmentation: 'on' tx-ipip-segmentation: off [fixed] rx-vlan-offload: off [fixed] tx-gre-segmentation: off [fixed] tx-checksumming/tx-checksum-ip-generic: 'on' tcp-segmentation-offload/tx-tcp-ecn-segmentation: 'on' tx-checksumming/tx-checksum-fcoe-crc: off [fixed] ipv4: 192.0.2.100 businfo: pci@0000:00:03.0 rx-vlan-stag-hw-parse: off [fixed] tx-vlan-offload: off [fixed] product: Virtio network device vendor: Red Hat, Inc tx-checksumming/tx-checksum-sctp: off [fixed] driver: virtio_net tx-sit-segmentation: off [fixed] busy-poll: off [fixed] tx-vlan-stag-hw-insert: off [fixed] scatter-gather/tx-scatter-gather: 'on' link: 'yes' ntuple-filters: off [fixed] rx-all: off [fixed] tcp-segmentation-offload: 'on' tcp-segmentation-offload/tx-tcp6-segmentation: 'on' rx-checksumming: on [fixed] rx-fcs: off [fixed] tx-lockless: off [fixed] generic-segmentation-offload: 'on' tx-fcoe-segmentation: off [fixed] tx-checksumming: 'on' ipv4-cidr: 24 large-receive-offload: off [fixed] rx-vlan-filter: on [fixed] receive-hashing: off [fixed] scatter-gather/tx-scatter-gather-fraglist: off [fixed] generic-receive-offload: 'on' loopback: off [fixed] scatter-gather: 'on' tx-mpls-segmentation: off [fixed] eth1: vlan-challenged: off [fixed] tx-udp_tnl-segmentation: off [fixed] tx-vlan-stag-hw-insert: off [fixed] rx-vlan-stag-filter: off [fixed] highdma: on [fixed] tx-nocache-copy: 'off' tx-gso-robust: off [fixed] fcoe-mtu: off [fixed] netns-local: off [fixed] udp-fragmentation-offload: 'on' serial: 52:54:00:11:c5:d8 latency: 0 tx-checksumming/tx-checksum-ipv6: off [fixed] tx-checksumming/tx-checksum-ipv4: off [fixed] tx-fcoe-segmentation: off [fixed] tcp-segmentation-offload/tx-tcp-segmentation: 'on' tx-ipip-segmentation: off [fixed] rx-vlan-offload: off [fixed] tx-gre-segmentation: off [fixed] tx-checksumming/tx-checksum-ip-generic: 'on' tcp-segmentation-offload/tx-tcp-ecn-segmentation: 'on' tx-checksumming/tx-checksum-fcoe-crc: off [fixed] rx-vlan-stag-hw-parse: off [fixed] businfo: pci@0000:00:04.0 tx-vlan-offload: off [fixed] product: Virtio network device vendor: Red Hat, Inc tx-checksumming/tx-checksum-sctp: off [fixed] driver: virtio_net tx-sit-segmentation: off [fixed] busy-poll: off [fixed] scatter-gather/tx-scatter-gather: 'on' link: 'yes' ntuple-filters: off [fixed] rx-all: off [fixed] tcp-segmentation-offload: 'on' tcp-segmentation-offload/tx-tcp6-segmentation: 'on' rx-checksumming: on [fixed] tx-lockless: off [fixed] generic-segmentation-offload: 'on' loopback: off [fixed] tx-checksumming: 'on' large-receive-offload: off [fixed] rx-vlan-filter: on [fixed] receive-hashing: off [fixed] scatter-gather/tx-scatter-gather-fraglist: off [fixed] generic-receive-offload: 'on' rx-fcs: off [fixed] scatter-gather: 'on' tx-mpls-segmentation: off [fixed] firmware: bios: date: 01/01/2011 version: 0.5.1 vendor: Seabios system: kernel: cmdline: ipa-inspection-callback-url=http://192.0.2.1:5050/v1/continue ipa-inspection-collectors=default,extra-hardware,logs systemd.journald.forward_to_console=yes BOOTIF=52:54:00:40:d0:11 ipa-debug=1 version: 3.10.0-327.10.1.el7.x86_64 arch: x86_64 product: version: RHEL 7.0.0 PC (i440FX + PIIX, 1996) vendor: Red Hat name: KVM uuid: FB25FBC2-3FF7-45C0-8581-3EF1BA7E7839 os: version: Red Hat Enterprise Linux Server release 7.2 (Maipo) vendor: RedHatEnterpriseServer memory: total: size: 4294967296 disk: vda: optimal_io_size: 0 physical_block_size: 512 rotational: 1 vendor: '0x1af4' size: 64 logical: count: 1 cpu: logical: number: 4 physical_0: physid: 401 product: Intel Xeon E312xx (Sandy Bridge) frequency: 2000000000 vendor: Intel Corp. flags: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp x86-64 constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi flexpriority ept xsaveopt xsavec xgetbv1 physical_1: physid: 402 product: Intel Xeon E312xx (Sandy Bridge) frequency: 2000000000 vendor: Intel Corp. flags: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp x86-64 constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi flexpriority ept xsaveopt xsavec xgetbv1 physical_2: physid: 403 product: Intel Xeon E312xx (Sandy Bridge) frequency: 2000000000 vendor: Intel Corp. flags: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp x86-64 constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi flexpriority ept xsaveopt xsavec xgetbv1 physical_3: physid: 404 product: Intel Xeon E312xx (Sandy Bridge) frequency: 2000000000 vendor: Intel Corp. flags: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp x86-64 constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi flexpriority ept xsaveopt xsavec xgetbv1 physical: number: 4 interfaces: eth0: ip: 192.0.2.100 mac: 52:54:00:40:d0:11 cpus: 4 boot_interface: 52:54:00:40:d0:11 memory_mb: 4096 ipmi_address: '' inventory: bmc_address: '' interfaces: - ipv4_address: switch_port_descr: switch_chassis_descr: name: eth1 mac_address: 52:54:00:11:c5:d8 - ipv4_address: 192.0.2.100 switch_port_descr: switch_chassis_descr: name: eth0 mac_address: 52:54:00:40:d0:11 disks: - rotational: true vendor: '0x1af4' name: "/dev/vda" wwn_vendor_extension: wwn_with_extension: model: '' wwn: serial: size: 64424509440 system_vendor: serial_number: Not Specified product_name: KVM manufacturer: Red Hat memory: physical_mb: 4096 total: 4144173056 cpu: count: 4 frequency: '3408.032' model_name: Intel Xeon E312xx (Sandy Bridge) architecture: x86_64 error: local_gb: 59 all_interfaces: eth1: ip: mac: 52:54:00:11:c5:d8 eth0: ip: 192.0.2.100 mac: 52:54:00:40:d0:11 logs: Way too long... fog-openstack-1.1.5/test/helpers/000077500000000000000000000000001476630434000167065ustar00rootroot00000000000000fog-openstack-1.1.5/test/helpers/collection_helper.rb000066400000000000000000000050311476630434000227240ustar00rootroot00000000000000def collection_tests(collection, params = {}) describe "success" do before do @instance = collection.create(params) unless Fog.mocking? @identity = @instance.identity end end it "#new(#{params.inspect})" do unless Fog.mocking? collection.new(params).must_equal 200 end end it "#create(#{params.inspect})" do unless Fog.mocking? @instance.must_be_kind_of Fog::OpenStack::Network::SecurityGroup end end # FIXME: work around for timing issue on AWS describe_instances mocks if Fog.mocking? && @instance.respond_to?(:ready?) @instance.wait_for { ready? } end it "#all" do unless Fog.mocking? collection.all.must_be_kind_of Fog::OpenStack::Network::SecurityGroups end end it "#get(#{@identity})" do unless Fog.mocking? collection.get(@identity).must_be_kind_of Fog::OpenStack::Network::SecurityGroup end end unless Fog.mocking? describe "Enumerable" do before do methods = [ 'all?', 'any?', 'find', 'detect', 'collect', 'map', 'find_index', 'flat_map', 'collect_concat', 'group_by', 'none?', 'one?' ] end methods.each do |enum_method| if collection.respond_to?(enum_method) it "##{enum_method}" do block_called = false collection.send(enum_method) { block_called = true } block_called.must_equal true end end end %w{max_by, min_by}.each do |enum_method| if collection.respond_to?(enum_method) it "##{enum_method}" do block_called = false collection.send(enum_method) do block_called = true return 0 end block_called.must_equal true end end end after do if block_given? yield(@instance) end if !Fog.mocking? || mocks_implemented @instance.destroy end end end end end describe "fails" do before do unless Fog.mocking? @identity = @identity.to_s @identity = @identity.gsub(/[a-zA-Z]/) { Fog::Mock.random_letters(1) } @identity = @identity.gsub(/\d/) { Fog::Mock.random_numbers(1) } @identity end end it "#get(@identity" do unless Fog.mocking? collection.get(@identity).must_equal nil end end end end fog-openstack-1.1.5/test/helpers/container_infra_helper.rb000066400000000000000000000003771476630434000237420ustar00rootroot00000000000000module Minitest class Test def self.container_infra class_variable_get(:@@container_infra) end class_variable_set(:@@container_infra, Fog::OpenStack::ContainerInfra.new) end end def container_infra self.class.container_infra end fog-openstack-1.1.5/test/helpers/dns_v2_helper.rb000066400000000000000000000002701476630434000217640ustar00rootroot00000000000000def set_dns_data @dns = Fog::OpenStack::DNS::V2.new @zone = @dns.create_zone('example.org', 'hostmaster@example.org') @zone_id = @zone.body['id'] [@dns, @zone, @zone_id] end fog-openstack-1.1.5/test/helpers/mock_helper.rb000066400000000000000000000007121476630434000215230ustar00rootroot00000000000000# Use so you can run in mock mode from the command line # # FOG_MOCK=true fog if ENV["FOG_MOCK"] == "true" Fog.mock! end # if in mocked mode, fill in some fake credentials for us if Fog.mock? Fog.credentials = { :openstack_api_key => 'openstack_api_key', :openstack_username => 'openstack_username', :openstack_tenant => 'openstack_tenant', :openstack_auth_url => 'http://openstack:35357/v2.0/tokens', }.merge(Fog.credentials) end fog-openstack-1.1.5/test/helpers/model_helper.rb000066400000000000000000000013741476630434000216770ustar00rootroot00000000000000def model_tests(collection, params = {}) describe "success" do before do @instance = collection.new(params) if block_given? yield(@instance) end end it "#save" do unless Fog.mocking? @instance.save.must_equal true end end it "#destroy" do unless Fog.mocking? @instance.destroy.must_equal 200 end end end end # Generates a unique identifier with a random differentiator. # Useful when rapidly re-running tests, so we don't have to wait # serveral minutes for deleted objects to disappear from the API # E.g. 'fog-test-1234' def uniq_id(base_name = 'fog-test') # random_differentiator suffix = rand(65536).to_s(16).rjust(4, '0') [base_name, suffix].join '-' end fog-openstack-1.1.5/test/helpers/network_helper.rb000066400000000000000000000003201476630434000222560ustar00rootroot00000000000000module Minitest class Test def self.network class_variable_get(:@@network) end class_variable_set(:@@network, Fog::OpenStack::Network.new) end end def network self.class.network end fog-openstack-1.1.5/test/helpers/nfv_helper.rb000066400000000000000000000017621476630434000213710ustar00rootroot00000000000000def set_nfv_data @nfv = Fog::OpenStack::NFV.new @vnfd_data = { :attributes => { :vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_prop"\ "erties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n"\ " vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.ti"\ "ny\n\n network_interfaces:\n management:\n network: ne"\ "t_mgmt\n management: true\n pkt_in:\n network: net"\ "0\n pkt_out:\n network: net1\n\n placement_policy:\n "\ " availability_zone: nova\n\n auto-scaling: noop\n\n config:"\ "\n param0: key0\n param1: key1\n" }, :service_types => [{:service_type => "vnfd"}], :mgmt_driver => "noop", :infra_driver => "heat" } @auth = { "tenantName" => "admin", "passwordCredentials" => { "username" => "admin", "password" => "password" } } [@nfv, @vnfd_data, @auth] end fog-openstack-1.1.5/test/identity_version_tests.rb000066400000000000000000000012221476630434000224060ustar00rootroot00000000000000require 'test_helper' describe "Fog::Identity[:openstack] | versions" do before do @old_mock_value = Excon.defaults[:mock] @old_credentials = Fog.credentials end it "v2" do Fog.credentials = {:openstack_auth_url => 'http://openstack:35357'} assert(Fog::OpenStack::Identity::V2::Real) do Fog::Identity[:openstack].class end end it "v3" do Fog.credentials = {:openstack_auth_url => 'http://openstack:35357'} assert(Fog::OpenStack::Identity::V3::Real) do Fog::Identity[:openstack].class end end after do Excon.defaults[:mock] = @old_mock_value Fog.credentials = @old_credentials end end fog-openstack-1.1.5/test/microversion_test.rb000066400000000000000000000022271476630434000213520ustar00rootroot00000000000000require "test_helper" describe "when microversion" do before do @microversion_tester = Object.new @microversion_tester = extend(Fog::OpenStack::Core) end describe "is nil" do it "should not appear in headers" do merged_headers = @microversion_tester.send(:headers, {}) merged_headers.key?("X-Test-Header").must_equal false end end describe "is set with a value" do it "should appear in headers with proper value" do @microversion_tester.instance_variable_set(:@microversion, "2.15") @microversion_tester.instance_variable_set(:@microversion_key, "X-Test-Header") merged_headers = @microversion_tester.send(:headers, {}) merged_headers.key?("X-Test-Header").must_equal true merged_headers["X-Test-Header"].must_equal "2.15" end end describe "is empty" do it "should not appear in headers" do @microversion_tester.instance_variable_set(:@microversion, "") @microversion_tester.instance_variable_set(:@microversion_key, "X-Test-Header") merged_headers = @microversion_tester.send(:headers, {}) merged_headers.key?("X-Test-Header").must_equal false end end end fog-openstack-1.1.5/test/models/000077500000000000000000000000001476630434000165275ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/compute/000077500000000000000000000000001476630434000202035ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/compute/images_tests.rb000066400000000000000000000005421476630434000232200ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | images collection" do describe "success" do describe "#all" do let (:fog) { Fog::OpenStack::Compute.new } it "must be an Array" do fog.images.all.must_be_kind_of Array end it "wont be nil" do fog.images.all.wont_be_nil end end end end fog-openstack-1.1.5/test/models/compute/security_group_tests.rb000066400000000000000000000035421476630434000250410ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | security_group" do describe "success" do let(:fog) { Fog::OpenStack::Compute.new } let(:security_group) do fog.security_groups.create( :name => 'my_group', :description => 'my group' ) end after do security_group.destroy if security_group end describe "#create" do it "name" do security_group.name.must_equal 'my_group' end it "description" do security_group.description.must_equal 'my group' end it "security_group_rules" do security_group.security_group_rules.must_equal [] end it "tenant_id" do security_group.tenant_id.wont_be_nil end end describe "#rules" do it "#create" do rules_count = security_group.security_group_rules.count rule = security_group.security_group_rules.create( :parent_group_id => security_group.id, :ip_protocol => 'tcp', :from_port => 1234, :to_port => 1234, :ip_range => {"cidr" => "0.0.0.0/0"} ) security_group.security_group_rules.count.must_equal(rules_count + 1) security_group_rule = security_group.security_group_rules.find { |r| r.id == rule.id } security_group_rule.attributes.must_equal rule.attributes end it "#destroy" do # Sometimes the reload comes not empty! skip unless Minitest::Test::UNIT_TESTS_CLEAN rule = security_group.security_group_rules.create( :parent_group_id => security_group.id, :ip_protocol => 'tcp', :from_port => 1234, :to_port => 1234, :ip_range => {"cidr" => "0.0.0.0/0"} ) rule.destroy rule.reload.must_equal nil end end end end fog-openstack-1.1.5/test/models/compute/server_group_tests.rb000066400000000000000000000010541476630434000244740ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute::ServerGroup" do describe "validate_server_group_policy" do it "contains only allowed policies" do ['affinity', 'anti-affinity', 'soft-affinity', 'soft-anti-affinity'].each do |policy| Fog::OpenStack::Compute::ServerGroup.validate_server_group_policy(policy).must_equal true end end it "raises an error" do assert_raises ArgumentError do Fog::OpenStack::Compute::ServerGroup.validate_server_group_policy('invalid-policy') end end end end fog-openstack-1.1.5/test/models/compute/server_tests.rb000066400000000000000000000145741476630434000232730ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | server" do let (:compute) { Fog::OpenStack::Compute.new } describe "success" do it "#floating_ips" do flavor = compute.flavors.first.id image = compute.images.first.id server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image ) server.save ip1 = Fog::OpenStack::Network.new.floating_ips.create( :floating_network_id => 'f0000000-0000-0000-0000-000000000000', :fixed_ip_address => '192.168.11.3' ) server.associate_address(ip1.fixed_ip_address) server.reload server.floating_ip_addresses.must_equal(["192.168.11.3"]) end describe "#security_groups" do let(:my_group) do compute.security_groups.create( :name => 'my_group', :description => 'my group' ) end let(:flavor) { compute.flavors.first.id } let(:image) { compute.images.first.id } let(:server) do server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image ) server.security_groups = my_group server.save server end let (:found_groups) { server.security_groups } let (:group) { found_groups.first } after do unless Fog.mocking? server.destroy if server begin compute.servers.get(server.id).wait_for { false } rescue Fog::Errors::Error # ignore, server went away end end my_group.destroy if my_group end it "groups size" do found_groups.length.must_equal 1 end it "name" do group.name.must_equal 'my_group' end it "" do group.service.must_equal server.service end end describe "#server" do let(:flavor) { compute.flavors.first.id } let(:image) { compute.images.first.id } it "creates server" do server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image, :state => 'success' ) server.failed?.must_equal false end it "fails server creation" do server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image, :state => 'ERROR' ) server.failed?.must_equal true end end describe "#metadata" do after do unless Fog.mocking? server.destroy if server begin compute.servers.get(server.id).wait_for { false } rescue Fog::Errors::Error # ignore, server went away end end end it "does" do flavor = compute.flavors.first.id image = compute.images.first.id server = compute.servers.new( :name => 'test server', :metadata => {"foo" => "bar"}, :flavor_ref => flavor, :image_ref => image ) server.save server.metadata.length.must_equal 1 server.metadata.each do |datum| datum.value = 'foo' datum.save datum.destroy end end end it "#resize" do flavor = compute.flavors.first.id image = compute.images.first.id server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image ) server.save flavor_resize = compute.flavors[1].id server.resize(flavor_resize) server.wait_for { server.state == "VERIFY_RESIZE" } unless Fog.mocking? server.revert_resize server.wait_for { server.state == "ACTIVE" } unless Fog.mocking? server.resize(flavor_resize) server.wait_for { server.state == "VERIFY_RESIZE" } unless Fog.mocking? server.confirm_resize unless Fog.mocking? server.destroy if server begin compute.servers.get(server.id).wait_for { false } rescue Fog::Errors::Error # ignore, server went away end end end describe "#volumes" do let(:volume) do volume = compute.volumes.new( :name => 'test volume', :description => 'test volume', :size => 1 ) volume.save volume.wait_for { volume.status == 'available' } unless Fog.mocking? volume end let(:server) do flavor = compute.flavors.first.id image = compute.images.first.id server = compute.servers.new( :name => 'test server', :flavor_ref => flavor, :image_ref => image ) server.save server.wait_for { server.state == "ACTIVE" } unless Fog.mocking? server.attach_volume(volume.id, '/dev/vdc') server end let(:volumes) do volume.wait_for { volume.status == 'in-use' } unless Fog.mocking? server.volumes end let(:volume_attachments) { server.volume_attachments } after do unless Fog.mocking? server.destroy if server volume.destroy if volume begin compute.servers.get(server.id).wait_for { false } compute.volumes.get(volume.id).wait_for { false } rescue Fog::Errors::Error # ignore, server went away end end end it "volume size" do volumes.length.must_equal 1 end it "name" do volumes.first.name.must_equal 'test volume' end it "volume_attachments size" do volume_attachments.length.must_equal 1 end it "volume_attachments device" do attachment = volume_attachments.first attachment['device'].must_equal '/dev/vdc' end describe "detach volume" do before do server.detach_volume(volume.id) volume.wait_for { volume.status == 'available' } unless Fog.mocking? end it "has no volumes" do found_volumes = server.volumes found_volumes.length.must_equal 0 end it "has no volume_attachments" do found_attachments = server.volume_attachments found_attachments.length.must_equal 0 end end end end end fog-openstack-1.1.5/test/models/compute/service_tests.rb000066400000000000000000000010471476630434000234140ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | services" do describe "success" do before do services = Fog::OpenStack::Compute.new.services.all @service = services.first end it "#all" do @service.state.must_equal "up" end it "#get" do service = Fog::OpenStack::Compute.new.services.get(@service.id) %w(id binary host).all? do |attr| attr1 = service.send(attr.to_sym) attr2 = @service.send(attr.to_sym) attr1 == attr2 end.must_equal true end end end fog-openstack-1.1.5/test/models/container_infra/000077500000000000000000000000001476630434000216705ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/container_infra/bay_model_tests.rb000066400000000000000000000015621476630434000253760ustar00rootroot00000000000000require "test_helper" require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | bay model" do describe "success" do before do @instance = container_infra.bay_models.create( :tls_disabled => true, :keypair_id => "kp", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 ) end it "#create" do @instance.uuid.wont_be_nil end it "#update" do @instance.name = 'rename-test-bay-model' @instance.update.name.must_equal 'rename-test-bay-model' end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/container_infra/bay_tests.rb000066400000000000000000000011701476630434000242110ustar00rootroot00000000000000require "test_helper" require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | bay" do describe "success" do before do @instance = container_infra.bays.create( :name => "test-cluster", :baymodel_id => "0562d357-8641-4759-8fed-8173f02c9633" ) end it "#create" do @instance.uuid.wont_be_nil end it "#update" do @instance.name = 'rename-test-cluster' @instance.update.name.must_equal "rename-test-cluster" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/container_infra/certificate_tests.rb000066400000000000000000000012471476630434000257250ustar00rootroot00000000000000require "test_helper" require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | certificate" do describe "success" do before do @instance = container_infra.certificates.create( :bay_uuid => '0562d357-8641-4759-8fed-8173f02c9633', :csr => "-----BEGIN CERTIFICATE REQUEST-----\nMIIEfzCCAmcCAQAwFDESMBAGA1UEAxMJWW91ciBOYW1lMIICIjANBgkqhkiG9w0B\n-----END CERTIFICATE REQUEST-----\n" ) end it "#create" do @instance.pem.wont_be_nil end it "#get" do @instance = container_infra.certificates.get("0562d357-8641-4759-8fed-8173f02c9633") @instance.pem.wont_be_nil end end end fog-openstack-1.1.5/test/models/container_infra/cluster_template_tests.rb000066400000000000000000000016661476630434000270240ustar00rootroot00000000000000require "test_helper" require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | cluster template" do describe "success" do before do @instance = container_infra.cluster_templates.create( :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 ) end it "#create" do @instance.uuid.wont_be_nil end it "#update" do @instance.name = 'rename-test-cluster-template' @instance.update.name.must_equal 'rename-test-cluster-template' end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/container_infra/cluster_tests.rb000066400000000000000000000012101476630434000251120ustar00rootroot00000000000000require "test_helper" require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | cluster" do describe "success" do before do @instance = container_infra.clusters.create( :name => "test-cluster", :cluster_template_id => "0562d357-8641-4759-8fed-8173f02c9633" ) end it "#create" do @instance.uuid.wont_be_nil end it "#update" do @instance.name = 'rename-test-cluster' @instance.update.name.must_equal "rename-test-cluster" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/identity/000077500000000000000000000000001476630434000203605ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/identity/ec2_credential_tests.rb000066400000000000000000000017611476630434000247770ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | ec2_credential" do before do identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') tenant_id = identity.list_tenants.body['tenants'].first['id'] @user = identity.users.find { |user| user.name == 'foobar' } @user ||= identity.users.create( :name => 'foobar', :email => 'foo@bar.com', :tenant_id => tenant_id, :password => 'spoof', :enabled => true ) @ec2_credential = identity.ec2_credentials.create( :user_id => @user.id, :tenant_id => tenant_id ) end after do @user.ec2_credentials.each do |ec2_credential| ec2_credential.destroy end @user.destroy end describe "success" do it "#destroy" do @ec2_credential.destroy.must_equal(true) end end describe "failure" do it "#save" do proc do @ec2_credential.save end.must_raise(Fog::Errors::Error) end end end fog-openstack-1.1.5/test/models/identity/ec2_credentials_tests.rb000066400000000000000000000030371476630434000251600ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | ec2_credentials" do before do identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') tenant_id = identity.list_tenants.body['tenants'].first['id'] @user = identity.users.find { |user| user.name == 'foobar' } @user ||= identity.users.create( :name => 'foobar', :email => 'foo@bar.com', :tenant_id => tenant_id, :password => 'spoof', :enabled => true ) @ec2_credential = identity.ec2_credentials.create( :user_id => @user.id, :tenant_id => tenant_id ) end after do @user.ec2_credentials.each(&:destroy) @user.destroy end describe "success" do it "#find_by_access_key" do ec2_credential = @user.ec2_credentials.find_by_access_key(@ec2_credential.access) ec2_credential.access.must_equal @ec2_credential.access end it "#create" do @user.ec2_credentials.create.tenant_id.wont_be_empty end it "#destroy" do @user.ec2_credentials.destroy(@ec2_credential.access).must_equal true end end describe "fails" do it "#find_by_access_key" do unless Fog.mocking? proc do @user.ec2_credentials.find_by_access_key('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end it "#destroy" do unless Fog.mocking? proc do @user.ec2_credentials.destroy('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end end end fog-openstack-1.1.5/test/models/identity/role_tests.rb000066400000000000000000000017561476630434000231010ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | role" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @instance = @identity.roles.new( :name => 'Role Name', :user_id => 1, :role_id => 1 ) @tenant = @identity.tenants.create(:name => 'test_user') @user = @identity.users.create( :name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof' ) @instance_saved = @instance.save end after do @user.destroy @tenant.destroy end describe "success" do it "#save" do @instance_saved.must_equal true end it "#add_to_user(@user.id, @tenant.id)" do @instance.add_to_user(@user.id, @tenant.id).must_equal true end it "#remove_to_user(@user.id, @tenant.id)" do @instance.remove_to_user(@user.id, @tenant.id).must_equal true end it "#destroy" do @instance.destroy.must_equal(true) end end end fog-openstack-1.1.5/test/models/identity/roles_tests.rb000066400000000000000000000014321476630434000232530ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | roles" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant = @identity.tenants.create(:name => 'test_user') @user = @identity.users.create(:name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof') @role = @identity.roles(:user => @user, :tenant => @tenant).create(:name => 'test_role') @roles = @identity.roles(:user => @user, :tenant => @tenant) end after do @role.destroy @user.destroy @tenant.destroy end describe "success" do it "#all" do @roles.all.must_be_kind_of Fog::OpenStack::Identity::V2::Roles end it "#get" do @roles.get(@roles.first.id).body.wont_be_nil end end end fog-openstack-1.1.5/test/models/identity/tenant_tests.rb000066400000000000000000000014711476630434000234230ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | tenant" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') end describe "success" do before do @instance = @identity.tenants.first end it "#roles_for(0)" do @instance.roles_for(0) end it "#users" do instance = @identity.tenants.first instance.users.count.wont_equal @identity.users.count end end describe "CRUD" do before do @instance = @identity.tenants.create(:name => 'test') end it "#create" do @instance.id.nil?.wont_be_nil end it "#update" do @instance.update(:name => 'test2') @instance.name.must_equal 'test2' end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/identity/tenants_tests.rb000066400000000000000000000016021476630434000236020ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | tenants" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @instance = @identity.tenants.create(:name => 'test') end describe "success" do it "#find_by_id" do tenant = @identity.tenants.find_by_id(@instance.id) tenant.id.must_equal @instance.id end it "#destroy" do @identity.tenants.destroy(@instance.id).must_equal true end end describe "failure" do it "#find_by_id" do unless Fog.mocking? proc do @identity.tenants.find_by_id('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end it "#destroy" do unless Fog.mocking? proc do @identity.tenants.destroy('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end end end fog-openstack-1.1.5/test/models/identity/user_tests.rb000066400000000000000000000024151476630434000231070ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | user" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant_id = @identity.list_tenants.body['tenants'].first['id'] @instance = @identity.users.new( :name => 'User Name', :email => 'test@fog.com', :tenant_id => @tenant_id, :password => 'spoof', :enabled => true ) end describe "success" do before do @instance_saved = @instance.save end it "#save" do @instance_saved.must_equal true end it "#roles" do @instance.roles.must_be_empty end it "#update" do @instance.update(:name => 'updatename', :email => 'new@email.com'). must_equal true end it "#update_password" do @instance.update_password('swordfish').must_equal true end it "#update_tenant" do @instance.update_tenant(@tenant_id).must_equal true end it "#update_enabled" do @instance.update_enabled(true).must_equal true end it "#destroy" do @instance.destroy.must_equal true end end describe "failure" do it "#save" do skip proc do @instance.save end.must_raise(Fog::Errors::Error) end end end fog-openstack-1.1.5/test/models/identity/users_tests.rb000066400000000000000000000026711476630434000232760ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | users" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') tenant_id = @identity.list_tenants.body['tenants'].first['id'] @instance = @identity.users.create( :name => 'foobar', :email => 'foo@bar.com', :tenant_id => tenant_id, :password => 'spoof', :enabled => true ) end describe "success" do it "#find_by_id" do user = @identity.users.find_by_id(@instance.id) user.id.must_equal @instance.id end it "#find_by_name" do user = @identity.users.find_by_name(@instance.name) user.name.must_equal @instance.name end it "#destroy" do @identity.users.destroy(@instance.id).must_equal true end end describe "fails" do it "#find_by_id" do unless Fog.mocking? proc do Fog::Identity[:openstack].users.find_by_id('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end it "#find_by_name" do unless Fog.mocking? proc do Fog::Identity[:openstack].users.find_by_name('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end it "#destroy" do unless Fog.mocking? proc do Fog::Identity[:openstack].users.destroy('fake') end.must_raise(Fog::OpenStack::Identity::NotFound) end end end end fog-openstack-1.1.5/test/models/image/000077500000000000000000000000001476630434000176115ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/image/image_tests.rb000066400000000000000000000016101476630434000224400ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Image | image" do describe "success" do before do @instance = Fog::OpenStack::Image.new.images.create(:name => 'test image') end it "#create" do @instance.id.nil?.wont_be_nil end it "#update" do @instance.name = 'edit test image' @instance.update @instance.name.must_equal 'edit test image' end it "#get image metadata" do @instance.metadata["X-Image-Meta-Status"].must_equal "active" end it "#add member" do [200, 204].must_include(@instance.add_member(@instance.owner).status) end it "#show members" do @instance.members[0]["member_id"].wont_be_empty end it "#remove member" do [200, 204].must_include(@instance.remove_member(@instance.owner).status) end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/image/images_tests.rb000066400000000000000000000012111476630434000226200ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Image | images" do before do @instance = Fog::OpenStack::Image.new.create_image(:name => "model test image").body end describe "success" do it "#find_by_id" do image = Fog::OpenStack::Image.new.images.find_by_id(@instance['image']['id']) image.id.must_equal @instance['image']['id'] end it "#get" do image = Fog::OpenStack::Image.new.images.get(@instance['image']['id']) image.id.must_equal @instance['image']['id'] end it "#destroy" do Fog::OpenStack::Image.new.images.destroy(@instance['image']['id']).must_equal true end end end fog-openstack-1.1.5/test/models/network/000077500000000000000000000000001476630434000202205ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/network/floating_ip_tests.rb000066400000000000000000000027751476630434000242750ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | floating_ip" do describe "success" do let (:instance) do network.floating_ips.create( :floating_network_id => 'f0000000-0000-0000-0000-000000000000' ) end after do network.delete_floating_ip(instance.id) end it "#create" do instance.id.wont_be_nil end it "#update" do instance.port_id = 'p0000000-0000-0000-0000-000000000000' instance.update.port_id.must_equal "p0000000-0000-0000-0000-000000000000" end describe "#associate" do let(:port_id) { 'p0000000-0000-0000-0000-000000000000' } let(:fixed_ip_address) { '8.8.8.8' } let(:associate) { instance.associate(port_id, fixed_ip_address) } it "must match port_id" do associate.port_id.must_equal port_id end it "must match fixed_ip_address" do associate.fixed_ip_address.must_equal fixed_ip_address end end describe "#disassociate" do let(:fixed_ip_address) { '8.8.8.8' } let(:disassociate) { instance.disassociate(fixed_ip_address) } it "resets port_id" do disassociate.port_id.must_equal nil end it "resets fixed_ip_address" do disassociate.fixed_ip_address.must_equal nil end end it "#destroy" do instance = network.floating_ips.create( :floating_network_id => 'f0000000-0000-0000-0000-000000000000' ) instance.destroy == true end end end fog-openstack-1.1.5/test/models/network/floating_ips_tests.rb000066400000000000000000000012541476630434000244470ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | floating_ips" do before do @floating_ip = network.floating_ips.create( :floating_network_id => 'f0000000-0000-0000-0000-000000000000' ) @floating_ips = network.floating_ips end after do network.delete_floating_ip(@floating_ip.id) end describe "success" do it "#all" do @floating_ips.all[0].id.wont_be_nil end it "#get" do # Something wrong here - Test fails when there are several floating ips # not properly garbage collected skip @floating_ips.get(@floating_ip.id).id.must_equal @floating_ip.id end end end fog-openstack-1.1.5/test/models/network/ike_policies_tests.rb000066400000000000000000000017041476630434000244300ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ike_policies" do before do @ike_policy = network.ike_policies.create( :name => 'test-ike-policy', :description => 'Test VPN IKE Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-256', :pfs => 'group5', :phase1_negotiation_mode => 'main', :lifetime => { 'units' => 'seconds', 'value' => 3600 }, :ike_version => 'v1' ) @ike_policies = network.ike_policies end after do @ike_policy.destroy end describe "success" do it "#all" do @ike_policies.all[0].description.must_equal "Test VPN IKE Policy" end it "#get" do @ike_policies.get(@ike_policy.id).name.must_equal 'test-ike-policy' end end end fog-openstack-1.1.5/test/models/network/ike_policy_tests.rb000066400000000000000000000026111476630434000241160ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ike_policy" do describe "success" do before do @instance = network.ike_policies.create( :name => 'test-ike-policy', :description => 'Test VPN IKE Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-256', :pfs => 'group5', :phase1_negotiation_mode => 'main', :lifetime => { 'units' => 'seconds', 'value' => 3600 }, :ike_version => 'v1' ) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'rename-test-ike-policy' @instance.description = 'Test VPN IKE Policy' @instance.tenant_id = 'baz' @instance.auth_algorithm = 'sha512' @instance.encryption_algorithm = 'aes-512' @pfs = 'group1' @phase1_negotiation_mode = 'main' @ike_version = 'v1' @lifetime = {'units' => 'seconds', 'value' => 3600} @instance.update.name.must_equal "rename-test-ike-policy" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/ipsec_policies_tests.rb000066400000000000000000000017041476630434000247630ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ipsec_policies" do before do params = { :name => 'test-ipsec-policy', :description => 'Test VPN ipsec Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-128', :pfs => 'group5', :transform_protocol => 'esp', :lifetime => {'units' => 'seconds', 'value' => 3600}, :encapsulation_mode => 'tunnel' } @ipsec_policy = network.ipsec_policies.create(params) @ipsec_policies = network.ipsec_policies end after do @ipsec_policy.destroy end describe "success" do it "#all" do @ipsec_policies.all[0].description.must_equal 'Test VPN ipsec Policy' end it "#get" do @ipsec_policies.get(@ipsec_policy.id).name.must_equal "test-ipsec-policy" end end end fog-openstack-1.1.5/test/models/network/ipsec_policy_tests.rb000066400000000000000000000026021476630434000244510ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ipsec_policy" do describe "success" do before do @instance = network.ipsec_policies.create( :name => 'test-ipsec-policy', :description => 'Test VPN ipsec Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-128', :pfs => 'group5', :transform_protocol => 'esp', :lifetime => { 'units' => 'seconds', 'value' => 3600 }, :encapsulation_mode => 'tunnel' ) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'rename-test-ipsec-policy' @instance.description = 'Test VPN ipsec Policy' @instance.tenant_id = 'baz' @instance.auth_algorithm = 'sha27' @instance.encryption_algorithm = 'aes-18' @instance.pfs = 'group52' @instance.transform_protocol = 'espn' @instance.encapsulation_mode = 'tunnel' @instance.lifetime = {'units' => 'seconds', 'value' => 3600} @instance.update.name.must_equal 'rename-test-ipsec-policy' end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/ipsec_site_connection_tests.rb000066400000000000000000000033311476630434000263350ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ipsec_site_connection" do describe "success" do before do params = { :name => 'test-ipsec-site-connection', :vpnservice_id => 'vpn', :ikepolicy_id => 'ike', :ipsecpolicy_id => 'ipsec', :description => 'Test VPN IPSec Site Connection', :tenant_id => 'tenant_id', :peer_address => "172.24.4.226", :peer_id => "172.24.4.226", :peer_cidrs => [], :psk => "secret", :mtu => 1500, :dpd => { "action" => "hold", "interval" => 30, "timeout" => 120 }, :initiator => "bi-directional", :admin_state_up => true } @instance = network.ipsec_site_connections.create(params) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'rename-test-ipsec-site-connection' @instance.description = 'Test VPN IPSec Site Connection' @instance.tenant_id = 'baz' @instance.peer_address = "172.24.4.227" @instance.peer_id = "172.24.4.227" @instance.peer_cidrs = [] @instance.psk = "secrets" @instance.mtu = 1600 @instance.initiator = "bi-directional" @instance.admin_state_up = false @instance.dpd = { "action" => "hold", "interval" => 50, "timeout" => 120 } @instance.update.name.must_equal "rename-test-ipsec-site-connection" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/ipsec_site_connections_tests.rb000066400000000000000000000022211476630434000265150ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ipsec_site_connections" do before do params = { :name => 'test-ipsec-site-connection', :vpnservice_id => 'vpn', :ikepolicy_id => 'ike', :ipsecpolicy_id => 'ipsec', :description => 'Test VPN IPSec Site Connection', :tenant_id => 'tenant_id', :peer_address => "172.24.4.226", :peer_id => "172.24.4.226", :peer_cidrs => [], :psk => "secret", :mtu => 1500, :dpd => {"action" => "hold", "interval" => 30, "timeout" => 120}, :initiator => "bi-directional", :admin_state_up => true } @ipsec_site_connection = network.ipsec_site_connections.create(params) @ipsec_site_connections = network.ipsec_site_connections end after do @ipsec_site_connection.destroy end describe "success" do it "#all" do @ipsec_site_connections.all[0].status.must_equal "ACTIVE" end it "#get" do @ipsec_site_connections.get(@ipsec_site_connection.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/lb_health_monitor_tests.rb000066400000000000000000000025671476630434000254720ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_health_monitor" do describe "success" do before do @lb_pool = network.lb_pools.create( :subnet_id => 'subnet_id', :protocol => 'HTTP', :lb_method => 'ROUND_ROBIN' ) @instance = network.lb_health_monitors.create( :type => 'PING', :delay => 1, :timeout => 5, :max_retries => 10, :http_method => 'GET', :url_path => '/', :expected_codes => '200, 201', :admin_state_up => true, :tenant_id => 'tenant_id' ) end after do @lb_pool.destroy end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.delay = 5 @instance.timeout = 10 @instance.max_retries = 20 @instance.http_method = 'POST' @instance.url_path = '/varz' @instance.expected_codes = '200' @instance.admin_state_up = false @instance.update.expected_codes.must_equal "200" end it "#associate_to_pool" do @instance.associate_to_pool(@lb_pool.id).must_equal true end it "#disassociate_from_pool" do @instance.disassociate_from_pool(@lb_pool.id).must_equal true end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/lb_health_monitors_tests.rb000066400000000000000000000011701476630434000256420ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_health_monitors" do before do @lb_health_monitor = network.lb_health_monitors.create( :type => 'PING', :delay => 1, :timeout => 5, :max_retries => 10 ) @lb_health_monitors = network.lb_health_monitors end after do @lb_health_monitor.destroy end describe "success" do it "#all" do @lb_health_monitors.all[0].status.must_equal "ACTIVE" end it "#get" do @lb_health_monitors.get(@lb_health_monitor.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/lb_member_tests.rb000066400000000000000000000013471476630434000237200ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_member" do describe "success" do before do @instance = network.lb_members.create( :pool_id => 'pool_id', :address => '10.0.0.1', :protocol_port => 80, :weight => 100, :admin_state_up => true, :tenant_id => 'tenant_id' ) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.pool_id = 'new_pool_id' @instance.weight = 50 @instance.admin_state_up = false @instance.update.status.must_equal "ACTIVE" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/lb_members_tests.rb000066400000000000000000000011061476630434000240740ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_members" do before do @lb_member = network.lb_members.create( :pool_id => 'pool_id', :address => '10.0.0.1', :protocol_port => 80, :weight => 100 ) @lb_members = network.lb_members end after do @lb_member.destroy end describe "success" do it "#all" do @lb_members.all[0].status.must_equal "ACTIVE" end it "#get" do @lb_members.get(@lb_member.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/lb_pool_tests.rb000066400000000000000000000026611476630434000234220ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_pool" do describe "success" do before do @lb_health_monitor = network.lb_health_monitors.create( :type => 'PING', :delay => 1, :timeout => 5, :max_retries => 10 ) @instance = network.lb_pools.create( :subnet_id => 'subnet_id', :protocol => 'HTTP', :lb_method => 'ROUND_ROBIN', :name => 'test-pool', :description => 'Test Pool', :admin_state_up => true, :tenant_id => 'tenant_id' ) end after do @lb_health_monitor.destroy end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'new-test-pool' @instance.description = 'New Test Pool' @instance.lb_method = 'LEAST_CONNECTIONS' @instance.admin_state_up = false @instance.update.status.must_equal "ACTIVE" end it "#stats" do @instance.stats @instance.active_connections.wont_be_nil end it "#associate_health_monitor" do @instance.associate_health_monitor(@lb_health_monitor.id).must_equal true end it "#disassociate_health_monitor" do @instance.disassociate_health_monitor(@lb_health_monitor.id).must_equal true end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/lb_pools_tests.rb000066400000000000000000000010251476630434000235760ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_pools" do before do @lb_pool = network.lb_pools.create( :subnet_id => 'subnet_id', :protocol => 'HTTP', :lb_method => 'ROUND_ROBIN' ) @lb_pools = network.lb_pools end after do @lb_pool.destroy end describe "success" do it "#all" do @lb_pools.all[0].status.must_equal "ACTIVE" end it "#get" do @lb_pools.get(@lb_pool.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/lb_vip_tests.rb000066400000000000000000000023371476630434000232470ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_vip" do describe "success" do before do attributes = { :subnet_id => 'subnet_id', :pool_id => 'pool_id', :protocol => 'HTTP', :protocol_port => 80, :name => 'test-vip', :description => 'Test VIP', :address => '10.0.0.1', :session_persistence => { "cookie_name" => "COOKIE_NAME", "type" => "APP_COOKIE" }, :connection_limit => 10, :admin_state_up => true, :tenant_id => 'tenant_id' } @instance = network.lb_vips.create(attributes) end after do @instance.destroy.must_equal true end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.pool_id = 'new_pool_id' @instance.name = 'new-test-vip' @instance.description = 'New Test VIP' @instance.session_persistence = {"type" => "HTTP_COOKIE"} @instance.connection_limit = 5 @instance.admin_state_up = false @instance.update.status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/lb_vips_tests.rb000066400000000000000000000010571476630434000234300ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | lb_vips" do before do @lb_vip = network.lb_vips.create( :subnet_id => 'subnet_id', :pool_id => 'pool_id', :protocol => 'HTTP', :protocol_port => 80 ) @lb_vips = network.lb_vips end after do @lb_vip.destroy end describe "success" do it "#all" do @lb_vips.all[0].status.must_equal "ACTIVE" end it "#get" do @lb_vips.get(@lb_vip.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/network_tests.rb000066400000000000000000000034531476630434000234650ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | network" do describe "success" do before do @instance = network.networks.create( :name => 'net_name', :shared => false, :admin_state_up => true, :tenant_id => 'tenant_id' ) end it "#create" do @instance.id.wont_be_nil end it "#create+extensions" do net = network.networks.create( :name => 'net_name', :shared => false, :admin_state_up => true, :tenant_id => 'tenant_id', :router_external => true, # local, gre, vlan. Depends on the provider. # May rise an exception if the network_type isn't valid: # QuantumError: "Invalid input for operation: provider:physical_network" :provider_network_type => 'gre', :provider_segmentation_id => 22 ) net.status.must_equal "ACTIVE" net.destroy net.provider_network_type.must_equal 'gre' end describe "The network model should respond to" do before do @attributes = [ :name, :subnets, :shared, :status, :admin_state_up, :tenant_id, :provider_network_type, :provider_physical_network, :provider_segmentation_id, :router_external ] end it "attributes" do @attributes.each do |attribute| @instance.respond_to?(attribute).must_equal true end end end it "#update" do @instance.name = 'new_net_name' @instance.update.status.must_equal "ACTIVE" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/networks_tests.rb000066400000000000000000000010771476630434000236500ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | networks" do before do @network = network.networks.create( :name => 'net_name', :shared => false, :admin_state_up => true, :tenant_id => 'tenant_id' ) @networks = network.networks end after do @network.destroy end describe "success" do it "#all" do @networks.all[0].status.must_equal "ACTIVE" end it "#get" do @networks.get(@network.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/port_tests.rb000066400000000000000000000013741476630434000227600ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | port" do describe "success" do before do @instance = network.ports.create( :name => 'port_name', :network_id => 'net_id', :fixed_ips => [], :mac_address => 'fa:16:3e:62:91:7f', :admin_state_up => true, :device_owner => 'device_owner', :device_id => 'device_id', :tenant_id => 'tenant_id' ) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'new_port_name' @instance.update.status.must_equal "ACTIVE" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/ports_tests.rb000066400000000000000000000013021476630434000231320ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | ports" do before do @port = network.ports.create( :name => 'port_name', :network_id => 'net_id', :fixed_ips => [], :mac_address => 'fa:16:3e:62:91:7f', :admin_state_up => true, :device_owner => 'device_owner', :device_id => 'device_id', :tenant_id => 'tenant_id' ) @ports = network.ports end after do @port.destroy end describe "success" do it "#all" do @ports.all[0].status.must_equal "ACTIVE" end it "#get" do @ports.get(@port.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/router_tests.rb000066400000000000000000000017261476630434000233150ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | router" do describe "success" do before do @instance = network.routers.create( :name => 'router_name', :admin_state_up => true ) end it "#create" do @instance.id.wont_be_nil end describe '#update' do it "router name" do @instance.name = 'new_name' @instance.update @instance.name.must_equal 'new_name' end # Needs code from issue #1598 # it "external_gateway_info" do # net = network.networks.create( # :name => 'net_name', # :shared => false, # :admin_state_up => true, # :tenant_id => 'tenant_id', # :router_external => true, # ) # @instance.external_gateway_info = net # @instance.update # end end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/routers_tests.rb000066400000000000000000000007631476630434000235000ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | routers" do before do @router = network.routers.create( :name => 'router_name', :admin_state_up => true ) @routers = network.routers end after do @router.destroy end describe "success" do it "#all" do @routers.all[0].status.must_equal "ACTIVE" end it "#get" do @routers.get(@router.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/network/security_group_rule_tests.rb000066400000000000000000000020441476630434000261010ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" require "helpers/model_helper" describe "Fog::OpenStack::Network | security_group_rule model" do @secgroup = network.security_groups.create(:name => "fogsecgroup") attributes = {:security_group_id => @secgroup.id, :direction => "ingress"} model_tests(network.security_group_rules, attributes) describe "success" do before do @secgroup = network.security_groups.create(:name => "fogsecgroup") attributes = { :security_group_id => @secgroup.id, :direction => "ingress", :protocol => "tcp", :port_range_min => 22, :port_range_max => 22, :remote_ip_prefix => "0.0.0.0/0" } @secgrouprule = network.security_group_rules.create(attributes) @secgrouprule.wait_for { ready? } unless Fog.mocking? end after do @secgroup.destroy end it "#create" do @secgrouprule.id.wont_be_nil end it "#destroy" do @secgrouprule.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/security_group_rules_tests.rb000066400000000000000000000020721476630434000262650ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" require "helpers/collection_helper" describe "Fog::OpenStack::Network | security_group_rules collection" do @secgroup = network.security_groups.create(:name => "my_secgroup") attributes = {:security_group_id => @secgroup.id, :direction => "ingress"} collection_tests(network.security_group_rules, attributes) describe "success" do before do @secgroup = network.security_groups.create(:name => "my_secgroup") @attributes = { :security_group_id => @secgroup.id, :direction => "ingress", :protocol => "tcp", :port_range_min => 22, :port_range_max => 22, :remote_ip_prefix => "0.0.0.0/0" } @secgrouprule = network.security_group_rules.create(@attributes) end after do @secgroup.destroy end it "#all(filter)" do secgrouprule = network.security_group_rules.all(:direction => "ingress") secgrouprule.first.direction.must_equal "ingress" @secgrouprule.destroy end end end fog-openstack-1.1.5/test/models/network/security_group_tests.rb000066400000000000000000000013041476630434000250500ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" require "helpers/model_helper" describe "Fog::OpenStack::Network | security_group model" do model_tests(network.security_groups, :name => "fogsecgroup") describe "success" do before do attributes = {:name => "my_secgroup", :description => "my sec group desc"} @secgroup = network.security_groups.create(attributes) @secgroup.wait_for { ready? } unless Fog.mocking? end it "#create" do @secgroup.id.wont_be_nil end it "#update" do @secgroup.name = 'new_sg_name' @secgroup.name.must_equal 'new_sg_name' end it "#destroy" do @secgroup.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/security_groups_tests.rb000066400000000000000000000013411476630434000252340ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" require "helpers/collection_helper" describe "Fog::OpenStack::Network | security_groups collection" do @attributes = { :name => "my_secgroup", :description => "my sec group desc" } collection_tests(network.security_groups, @attributes) describe "success" do before do @attributes = { :name => "fogsecgroup", :description => "fog sec group desc" } @secgroup = network.security_groups.create(@attributes) end after do @secgroup.destroy end it "#all(filter)" do secgroup = network.security_groups.all(:name => "fogsecgroup") secgroup.first.name.wont_be_empty end end end fog-openstack-1.1.5/test/models/network/subnet_pools_tests.rb000066400000000000000000000013261476630434000245050ustar00rootroot00000000000000require 'test_helper' require "helpers/network_helper" describe 'Fog::OpenStack::Network | subnet_pools' do describe 'success' do before do @subnet_pool = network.subnet_pools.create( :name => 'fog_subnetpool', :prefixes => ['10.0.0.0/16'], :description => 'fog_subnetpool_description', :min_prefixlen => 64, :max_prefixlen => 64, :default_prefixlen => 64 ) @subnet_pools = network.subnet_pools end after do @subnet_pool.destroy end it '#all' do @subnet_pools.all[0].id.wont_be_empty end it '#get' do @subnet_pools.get(@subnet_pool.id).id.wont_be_empty end end end fog-openstack-1.1.5/test/models/network/subnet_tests.rb000066400000000000000000000015111476630434000232650ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | subnet" do describe "success" do before do @instance = network.subnets.create( :name => 'subnet_name', :network_id => 'net_id', :cidr => '10.2.2.0/24', :ip_version => 4, :gateway_ip => '10.2.2.1', :allocation_pools => [], :dns_nameservers => [], :host_routes => [], :enable_dhcp => true, :tenant_id => 'tenant_id' ) end it "#create" do @instance.id.wont_be_nil end it "#update" do @instance.name = 'new_subnet_name' @instance.update.name.must_equal 'new_subnet_name' end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/subnets_tests.rb000066400000000000000000000014401476630434000234510ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | subnets" do describe "success" do before do @subnet = network.subnets.create( :name => 'subnet_name', :network_id => 'net_id', :cidr => '10.2.2.0/24', :ip_version => 4, :gateway_ip => '10.2.2.1', :allocation_pools => [], :dns_nameservers => [], :host_routes => [], :enable_dhcp => true, :tenant_id => 'tenant_id' ) @subnets = network.subnets end after do @subnet.destroy end it "#all" do @subnets.all[0].id.wont_be_empty end it "#get" do @subnets.get(@subnet.id).id.wont_be_empty end end end fog-openstack-1.1.5/test/models/network/vpn_service_tests.rb000066400000000000000000000015641476630434000243200ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | vpn_service" do describe "success" do before do @instance = network.vpn_services.create( :subnet_id => 'foo', :router_id => 'bar', :name => 'test', :description => 'test', :admin_state_up => true, :tenant_id => 'tenant' ) end it "#create" do @instance.status.must_equal "ACTIVE" end it "#update" do @instance.subnet_id = 'new' @instance.router_id = 'new' @instance.name = 'rename' @instance.description = 'new' @instance.admin_state_up = false @instance.tenant_id = 'baz' @instance.update.status.must_equal "ACTIVE" end it "#destroy" do @instance.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/network/vpn_services_tests.rb000066400000000000000000000012351476630434000244760ustar00rootroot00000000000000require "test_helper" require "helpers/network_helper" describe "Fog::OpenStack::Network | vpn_services" do before do @vpn_service = network.vpn_services.create( :subnet_id => 'foo', :router_id => 'bar', :name => 'test', :description => 'test', :admin_state_up => true, :tenant_id => 'tenant' ) @vpn_services = network.vpn_services end after do @vpn_service.destroy end describe "success" do it "#all" do @vpn_services.all[0].status.must_equal "ACTIVE" end it "#get" do @vpn_services.get(@vpn_service.id).status.must_equal "ACTIVE" end end end fog-openstack-1.1.5/test/models/nfv/000077500000000000000000000000001476630434000173205ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/nfv/vnf_tests.rb000066400000000000000000000014771476630434000216710ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "Fog::NFV[:openstack] | vnf" do describe "success" do before do @nfv, @vnf_data, @auth = set_nfv_data @vnfd = @nfv.vnfds.create(:vnfd => @vnfd_data, :auth => @auth) vnf_data = {:vnfd_id => @vnfd.id, :name => 'Test'} @vnfs = @nfv.vnfs.create(:vnf => vnf_data, :auth => @auth) end after do @nfv.vnfs.get(@vnfs.id).wait_for { ready? } unless Fog.mocking? end it "#create" do @vnfs.status.must_equal "ACTIVE" end it "#update" do @vnfs.vnf = {:attributes => {:config => "vdus:\n vdu1: \n\n"}} @vnfs.update.status.must_equal "ACTIVE" end it "#destroy" do sleep(10) unless Fog.mocking? @vnfs.destroy @vnfd.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/nfv/vnfd_tests.rb000066400000000000000000000006021476630434000220220ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "Fog::NFV[:openstack] | vnf" do describe "success" do before do @nfv, @vnf_data, @auth = set_nfv_data @vnfd = @nfv.vnfds.create(:vnfd => @vnfd_data, :auth => @auth) end it "#create" do @vnfd.id.wont_be_empty end it "#destroy" do @vnfd.destroy.must_equal true end end end fog-openstack-1.1.5/test/models/nfv/vnfds_tests.rb000066400000000000000000000010461476630434000222100ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "Fog::NFV[:openstack] | vnfs" do describe "success" do before do @nfv, @vnf_data, @auth = set_nfv_data @vnfd = @nfv.vnfds.create(:vnfd => @vnfd_data, :auth => @auth) end it "#find_by_id" do vnf = @nfv.vnfds.find_by_id(@vnfd.id) vnf.id.must_equal @vnfd.id end it "#get" do vnf = @nfv.vnfds.get(@vnfd.id) vnf.id.must_equal @vnfd.id end it "#destroy" do @nfv.vnfds.destroy(@vnfd.id).must_equal true end end end fog-openstack-1.1.5/test/models/nfv/vnfs_tests.rb000066400000000000000000000014541476630434000220470ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "Fog::NFV[:openstack] | vnfs" do describe "success" do before do @nfv, @vnf_data, @auth = set_nfv_data @vnfd = @nfv.vnfds.create(:vnfd => @vnfd_data, :auth => @auth) vnf_data = {:vnfd_id => @vnfd.id, :name => 'Test'} @vnfs = @nfv.vnfs.create(:vnf => vnf_data, :auth => @auth) @nfv.vnfs.get(@vnfs.id).wait_for { ready? } unless Fog.mocking? end it "#find_by_id" do vnf = @nfv.vnfs.find_by_id(@vnfs.id) vnf.id.must_equal @vnfs.id end it "#get" do vnf = @nfv.vnfs.get(@vnfs.id) vnf.id.must_equal @vnfs.id end it "#destroy" do sleep(10) unless Fog.mocking? @nfv.vnfs.destroy(@vnfs.id) @nfv.vnfds.destroy(@vnfd.id).must_equal true end end end fog-openstack-1.1.5/test/models/planning/000077500000000000000000000000001476630434000203355ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/planning/plan_tests.rb000066400000000000000000000026751476630434000230500ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Planning | plan" do describe "success" do before do @planning = Fog::OpenStack::Planning.new @instance = @planning.plans.first @role = @planning.list_roles.body.first end it "#add_role" do @instance.add_role(@role['uuid']).body["roles"][0]["uuid"].must_equal @role['uuid'] end it "#templates" do @instance.templates.wont_be_empty end it "#master_template" do @instance.master_template.must_be_kind_of String end it "#environment" do @instance.environment.must_be_kind_of String end it "#provider_resource_templates" do @instance.provider_resource_templates["provider-compute-1.yaml"].wont_be_empty end it "#patch" do parameter = @instance.parameters.first @instance.patch( :parameters => [ { "name" => parameter['name'], "value" => 'new_value' } ] )["uuid"].must_be_kind_of String end it "#remove_role" do @instance.remove_role(@role['uuid']).status.must_equal 200 end it "#save" do @instance.save.must_be_kind_of Fog::OpenStack::Planning::Plan end it "#update" do @instance.update.uuid.wont_be_empty end it "#destroy" do @instance.destroy.must_equal true end it "#create" do @instance.create.must_be_kind_of Fog::OpenStack::Planning::Plan end end end fog-openstack-1.1.5/test/models/planning/plans_tests.rb000066400000000000000000000007751476630434000232320ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Planning | plans" do describe "success" do before do @planning = Fog::OpenStack::Planning.new @instance = @planning.plans.all.first end it "#all" do @instance.uuid.wont_be_empty end it "#get" do @planning.plans.get(@instance.uuid).uuid.must_equal @instance.uuid end it "#find_by_*" do plan = @planning.plans.find_by_name(@instance.name) plan.name.must_equal @instance.name end end end fog-openstack-1.1.5/test/models/planning/role_tests.rb000066400000000000000000000007011476630434000230430ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Planning | plan" do describe "success" do before do @instance = Fog::OpenStack::Planning.new.roles.first @plan = Fog::OpenStack::Planning.new.list_plans.body.first end it "#add_role" do @instance.add_to_plan(@plan['uuid']).status.must_equal 201 end it "#remove_role" do @instance.remove_from_plan(@plan['uuid']).status.must_equal 200 end end end fog-openstack-1.1.5/test/models/storage/000077500000000000000000000000001476630434000201735ustar00rootroot00000000000000fog-openstack-1.1.5/test/models/storage/file_tests.rb000066400000000000000000000171411476630434000226650ustar00rootroot00000000000000require "test_helper" require "helpers/model_helper" unless Fog.mocking? def object_attributes(file = @instance) @instance.service.head_object(@directory.key, file.key).headers end def object_meta_attributes @instance.service.head_object( @directory.key, @instance.key ).headers.reject { |k, _| !(k =~ /X-Object-Meta-/) } end def clear_metadata @instance.metadata.tap do |metadata| metadata.each_pair { |k, _| metadata[k] = nil } end end @file_attributes = { :key => 'fog_file_tests', :body => lorem_file } directory_attributes = { # Add a random suffix to prevent collision :key => "fogfilestests-#{rand(65536)}" } @directory = Fog::OpenStack::Storage.new.directories.create(directory_attributes) describe "Fog::OpenStack::Storage | file" do after do @directory.destroy end model_tests(@directory.files, @file_attributes.merge(:etag => 'foo'), Fog.mocking?) do it "#save should not blow up with etag" do @instance.save end end model_tests(@directory.files, @file_attributes, Fog.mocking?) do it "#metadata should load empty metadata" do @instance.metadata.must_equal {} end describe "#save" do it "#metadata" do before do @instance.metadata[:foo] = 'bar' @instance.save end after do clear_metadata @instance.save end it "should update metadata" do object_meta_attributes['X-Object-Meta-Foo'].must_equal 'bar' end it "should cache metadata" do @instance.metadata[:foo].must_equal 'bar' end it "should remove empty metadata" do @instance.metadata[:foo] = nil @instance.save object_meta_attributes.must_equal {} end end describe "#cache_control" do before do @instance = @directory.files.create( :key => 'meta-test', :body => lorem_file, :cache_control => 'public, max-age=31536000' ) end after do clear_metadata @instance.save end it "sets Cache-Control on create" do object_attributes(@instance)["Cache-Control"].must_equal "public, max-age=31536000" end end describe "#content_disposition" do before do @instance = @directory.files.create( :key => 'meta-test', :body => lorem_file, :content_disposition => 'ho-ho-ho' ) end after do clear_metadata @instance.save end it "sets Content-Disposition on create" do object_attributes(@instance)["Content-Disposition"].must_equal "ho-ho-ho" end end describe "#metadata keys" do after do clear_metadata @instance.save end it "should support compound key names" do @instance.metadata[:foo_bar] = 'baz' @instance.save object_meta_attributes['X-Object-Meta-Foo-Bar'].must_equal 'baz' end it "should support string keys" do @instance.metadata['foo'] = 'bar' @instance.save object_meta_attributes['X-Object-Meta-Foo'].must_equal 'bar' end it "should support compound string key names" do @instance.metadata['foo_bar'] = 'baz' @instance.save object_meta_attributes['X-Object-Meta-Foo-Bar'].must_equal 'baz' end it "should support hyphenated keys" do @instance.metadata['foo-bar'] = 'baz' @instance.save object_meta_attributes['X-Object-Meta-Foo-Bar'].must_equal 'baz' end it "should only support one value per metadata key" do @instance.metadata['foo-bar'] = 'baz' @instance.metadata[:foo_bar] = 'bref' @instance.save object_meta_attributes['X-Object-Meta-Foo-Bar'].must_equal 'bref' end end end describe "#access_control_allow_origin" do it "#access_control_allow_origin should default to nil" do @instance.access_control_allow_origin.must_equal nil end @instance.access_control_allow_origin = 'http://example.com' @instance.save it "#access_control_allow_origin should return access control attribute" do @instance.access_control_allow_origin.must_equal 'http://example.com' end @instance.access_control_allow_origin = 'foo' @instance.save it "#access_control_allow_origin= should update access_control_allow_origin" do @instance.access_control_allow_origin = 'bar' @instance.save @instance.access_control_allow_origin.must_equal 'bar' end it "#access_control_allow_origin= should not blow up on nil" do @instance.access_control_allow_origin = nil @instance.save end end describe "#delete_at" do @delete_at_time = (Time.now + 300).to_i it "#delete_at should default to nil" do @instance.delete_at.must_equal nil end @instance.delete_at = @delete_at_time @instance.save it "#delete_at should return delete_at attribute" do @instance.delete_at.must_equal @delete_at_time end @instance.delete_at = @delete_at_time @instance.save it "#delete_at= should update delete_at" do @instance.delete_at = @delete_at_time + 100 @instance.save @instance.delete_at.must_equal(@delete_at_time + 100) end it "#delete_at= should not blow up on nil" do @instance.delete_at = nil @instance.save end end end model_tests(@directory.files, @file_attributes, Fog.mocking?) do describe "#origin" do it "#origin should default to nil" do @instance.save @instance.origin.must_equal nil end @instance.origin = 'http://example.com' @instance.save it "#origin should return access control attributes" do @instance.origin.must_equal('http://example.com') end @instance.attributes.delete('Origin') @instance.origin = 'foo' @instance.save it "#origin= should update origin" do @instance.origin = 'bar' @instance.save @instance.origin.must_equal 'bar' end it "#origin= should not blow up on nil" do @instance.origin = nil @instance.save end end describe "#content_encoding" do it "#content_encoding should default to nil" do @instance.save @instance.content_encoding.must_equal nil end @instance.content_encoding = 'gzip' @instance.save it "#content_encoding should return the content encoding" do @instance.content_encoding.must_equal 'gzip' end @instance.attributes.delete('content_encoding') @instance.content_encoding = 'foo' @instance.save it "#content_encoding= should update content_encoding" do @instance.content_encoding = 'bar' @instance.save @instance.content_encoding.must_equal 'bar' end it "#content_encoding= should not blow up on nil" do @instance.content_encoding = nil @instance.save end end end end end fog-openstack-1.1.5/test/requests/000077500000000000000000000000001476630434000171175ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/baremetal/000077500000000000000000000000001476630434000210535ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/baremetal/chassis_tests.rb000066400000000000000000000030621476630434000242600ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Baremetal | Baremetal chassis requests" do describe "success" do before do @baremetal = Fog::OpenStack::Baremetal.new @chassis_format = { 'description' => String, 'uuid' => String, 'links' => Array } @detailed_chassis_format = { 'description' => String, 'uuid' => String, 'created_at' => String, 'updated_at' => Fog::Nullable::String, 'extra' => Hash, 'nodes' => Array, 'links' => Array } chassis_attributes = {:description => 'description'} @instance = @baremetal.create_chassis(chassis_attributes).body end it "#list_chassis" do @baremetal.list_chassis.body.must_match_schema('chassis' => [@chassis_format]) end it "#list_chassis_detailed" do @baremetal.list_chassis_detailed.body.must_match_schema('chassis' => [@detailed_chassis_format]) end it "#create_chassis" do @instance.must_match_schema(@detailed_chassis_format) end it "#get_chassis" do @baremetal.get_chassis(@instance['uuid']).body.must_match_schema(@detailed_chassis_format) end it "#patch_chassis" do @baremetal.patch_chassis( @instance['uuid'], [{'op' => 'replace', 'path' => '/description', 'value' => 'new description'}] ).body.must_match_schema(@detailed_chassis_format) end it "#delete_chassis" do @baremetal.delete_chassis(@instance['uuid']).status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/baremetal/driver_tests.rb000066400000000000000000000024231476630434000241160ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Baremetal | Baremetal driver requests" do before do @baremetal = Fog::OpenStack::Baremetal.new @driver_format = { 'hosts' => Array, 'name' => String } @driver_properties_format = { "pxe_deploy_ramdisk" => String, "ipmi_transit_address" => String, "ipmi_terminal_port" => String, "ipmi_target_channel" => String, "ipmi_transit_channel" => String, "ipmi_local_address" => String, "ipmi_username" => String, "ipmi_address" => String, "ipmi_target_address" => String, "ipmi_password" => String, "pxe_deploy_kernel" => String, "ipmi_priv_level" => String, "ipmi_bridging" => String } @instances = @baremetal.list_drivers.body @instance = @instances['drivers'].last end describe "success" do it "#list_drivers" do @instances.must_match_schema('drivers' => [@driver_format]) end it "#get_driver" do @baremetal.get_driver(@instance['name']).body.must_match_schema(@driver_format) end it "#get_driver_properties" do @baremetal.get_driver_properties(@instance['name']).body. must_match_schema(@driver_properties_format) end end end fog-openstack-1.1.5/test/requests/baremetal/node_tests.rb000066400000000000000000000060171476630434000235530ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Baremetal | Baremetal node requests" do before do @baremetal = Fog::OpenStack::Baremetal.new @node_format = { 'instance_uuid' => Fog::Nullable::String, 'maintenance' => Fog::Boolean, 'power_state' => Fog::Nullable::String, 'provision_state' => Fog::Nullable::String, 'uuid' => String, 'links' => Array } @detailed_node_format = { 'instance_uuid' => Fog::Nullable::String, 'maintenance' => Fog::Boolean, 'power_state' => Fog::Nullable::String, 'provision_state' => Fog::Nullable::String, 'uuid' => String, 'created_at' => String, 'updated_at' => Fog::Nullable::String, 'chassis_uuid' => Fog::Nullable::String, 'console_enabled' => Fog::Boolean, 'driver' => String, 'driver_info' => Hash, 'extra' => Hash, 'instance_info' => Hash, 'last_error' => Fog::Nullable::String, 'maintenance_reason' => Fog::Nullable::String, 'properties' => Hash, 'provision_updated_at' => Fog::Nullable::String, 'reservation' => Fog::Nullable::String, 'target_power_state' => Fog::Nullable::String, 'target_provision_state' => Fog::Nullable::String, 'links' => Array } end describe "success" do it "#list_nodes" do @baremetal.list_nodes.body.must_match_schema('nodes' => [@node_format]) end it "#list_nodes_detailed" do @baremetal.list_nodes_detailed.body. must_match_schema('nodes' => [@detailed_node_format]) end before do node_attributes = {:driver => 'pxe_ipmitool'} @instance = @baremetal.create_node(node_attributes).body end it "#create_node" do @instance.must_match_schema(@detailed_node_format) end it "#get_node" do @baremetal.get_node(@instance['uuid']).body. must_match_schema(@detailed_node_format) end it "#patch_node" do @baremetal.patch_node( @instance['uuid'], [{'op' => 'replace', 'path' => '/driver', 'value' => 'pxe_ssh'}] ).body.must_match_schema(@detailed_node_format) end it "#set_node_power_state" do @baremetal.set_node_power_state(@instance['uuid'], 'power off').body. must_match_schema(@detailed_node_format) end it "#set_node_provision_state" do @baremetal.set_node_provision_state(@instance['uuid'], 'manage').body. must_match_schema(@detailed_node_format) end it "#set_node_maintenance" do @baremetal.set_node_maintenance(@instance['uuid']).status.must_equal 202 end it "#unset_node_maintenance" do @baremetal.unset_node_maintenance(@instance['uuid']).status.must_equal 202 end it "#delete_node" do @baremetal.delete_node(@instance['uuid']).status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/baremetal/port_tests.rb000066400000000000000000000032611476630434000236100ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Baremetal | Baremetal port requests" do before do @baremetal = Fog::OpenStack::Baremetal.new @port_format = { 'address' => String, 'uuid' => String } @detailed_port_format = { 'address' => String, 'uuid' => String, 'created_at' => String, 'updated_at' => Fog::Nullable::String, 'extra' => Hash, 'node_uuid' => String, 'links' => Array } end describe "success" do it "#list_ports" do @baremetal.list_ports.body.must_match_schema('ports' => [@port_format]) end it "#list_ports_detailed" do @baremetal.list_ports_detailed.body.must_match_schema('ports' => [@detailed_port_format]) end before do node_attributes = {:driver => 'pxe_ipmitool'} @instance = Fog::OpenStack::Baremetal.new.create_node(node_attributes).body port_attributes = { :address => '00:c2:08:85:de:ca', :node_uuid => @instance['uuid'] } @port = Fog::OpenStack::Baremetal.new.create_port(port_attributes).body end it "#create_port" do @port.must_match_schema(@detailed_port_format) end it "#get_port" do @baremetal.get_port(@port['uuid']).body.must_match_schema(@detailed_port_format) end it "#patch_port" do @baremetal.patch_port( @port['uuid'], [{'op' => 'add', 'path' => '/extra/name', 'value' => 'eth1'}] ).body.must_match_schema(@detailed_port_format) end it "#delete_port" do @baremetal.delete_port(@port['uuid']).status.must_equal 200 @baremetal.delete_node(@instance['uuid']).status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/compute/000077500000000000000000000000001476630434000205735ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/compute/address_tests.rb000066400000000000000000000050751476630434000237760ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) # With Minitest the use of class variable is one way of providing before(:all) # Meanwhile using class variable using @@ triggers a cascade of messages # such as "warning: class variable access from toplevel" which pollute the tests # output. The latter has been avoided using class_variable_set/get and class # methods to wrap them. describe "Fog::OpenStack::Compute | address requests" do def self.compute class_variable_get(:@@compute) end def self.server_id class_variable_get(:@@server_id) end def self.data class_variable_get(:@@data) end class_variable_set(:@@compute, Fog::OpenStack::Compute.new) class_variable_set(:@@server_id, compute.create_server("test_server", get_image_ref, get_flavor_ref).body['server']['id']) class_variable_set(:@@data, compute.allocate_address.body) compute.servers.get(server_id).wait_for { ready? } def compute self.class.compute end Minitest.after_run do compute.delete_server(server_id) end describe "success" do def address_id self.class.data['floating_ip']['id'] end def address_ip self.class.data['floating_ip']['ip'] end def address_format { "instance_id" => NilClass, "ip" => String, "fixed_ip" => NilClass, "id" => Integer, "pool" => String } end def address_pools_format {"name" => String} end it "#allocate_address" do self.class.data.must_match_schema("floating_ip" => address_format) end it "#list_all_addresses" do compute.list_all_addresses.body. must_match_schema("floating_ips" => [address_format]) end it "#get_address(address_id)" do compute.get_address(address_id).body. must_match_schema("floating_ip" => address_format) end it "#list_address_pools" do compute.list_address_pools.body. must_match_schema("floating_ip_pools" => [address_pools_format]) end it "#associate_address(server_id, ip_address)" do compute.associate_address(self.class.server_id, address_ip).body.must_equal "" end it "#disassociate_address(server_id, ip_address)" do compute.disassociate_address(self.class.server_id, address_ip).body.must_equal "" end it "#release_address(ip_address)" do compute.release_address(address_id).status.must_equal 202 end end end fog-openstack-1.1.5/test/requests/compute/aggregate_tests.rb000066400000000000000000000041661476630434000242770ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | Compute aggregate requests" do before do @aggregate_format = { "availability_zone" => Fog::Nullable::String, "created_at" => String, "deleted" => Fog::Boolean, "deleted_at" => Fog::Nullable::String, "id" => Integer, "name" => String, "updated_at" => Fog::Nullable::String } @detailed_aggregate_format = @aggregate_format.merge('hosts' => Array) @metadata_aggregate_format = @aggregate_format.merge("metadata" => Hash) @compute = Fog::OpenStack::Compute.new @aggregate_body = @compute.create_aggregate('test_aggregate').body @aggregate = @aggregate_body['aggregate'] end describe "success" do it "#create_aggregate" do @aggregate_body.must_match_schema('aggregate' => @aggregate_format) end it "#list_aggregates" do @compute.list_aggregates.body. must_match_schema('aggregates' => [@metadata_aggregate_format]) end it "#update_aggregate" do @aggregate_attributes = {'name' => 'test_aggregate2'} @compute.update_aggregate(@aggregate['id'], @aggregate_attributes).body. must_match_schema('aggregate' => @aggregate_format) end it "#get_aggregate" do @compute.get_aggregate(@aggregate['id']).body. must_match_schema('aggregate' => @detailed_aggregate_format) end describe "with aggregate host" do let(:host_name) do @compute.hosts.select { |x| x.service_name == 'compute' }.first.host_name end it "#add_aggregate_host" do @compute.add_aggregate_host(@aggregate['id'], host_name).status.must_equal 200 end it "#remove_aggregate_host" do @compute.remove_aggregate_host(@aggregate['id'], host_name).status.must_equal 200 end end it "#update_aggregate_metadata" do @compute.update_aggregate_metadata(@aggregate['id'], 'test' => 'test', 'test2' => 'test2').status.must_equal 200 end it "#delete_aggregate" do @compute.delete_aggregate(@aggregate['id']).status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/compute/availability_zone_tests.rb000066400000000000000000000011231476630434000260440ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | availability zone requests" do before do @flavor_format = { 'zoneName' => String, 'hosts' => Fog::Nullable::Hash, 'zoneState' => Hash, } end describe "success" do it "#list_zones" do Fog::OpenStack::Compute.new.list_zones.body. must_match_schema('availabilityZoneInfo' => [@flavor_format]) end it "#list_zones_detailed" do Fog::OpenStack::Compute.new.list_zones_detailed.body. must_match_schema('availabilityZoneInfo' => [@flavor_format]) end end end fog-openstack-1.1.5/test/requests/compute/flavor_tests.rb000066400000000000000000000100531476630434000236320ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::OpenStack::Compute | flavor requests" do before do @flavor_format = { 'id' => String, 'name' => String, 'disk' => Integer, 'ram' => Integer, 'links' => Array, 'swap' => Fog::Nullable::String, 'rxtx_factor' => Fog::Nullable::Float, 'OS-FLV-EXT-DATA:ephemeral' => Integer, 'os-flavor-access:is_public' => Fog::Nullable::Boolean, 'OS-FLV-DISABLED:disabled' => Fog::Nullable::Boolean, 'vcpus' => Integer } @compute = Fog::OpenStack::Compute.new end describe "success" do it "#get_flavor_details(1)" do @compute.get_flavor_details("1").body['flavor']. must_match_schema(@flavor_format) end it "#list_flavors" do @compute.list_flavors.body. must_match_schema('flavors' => [OpenStack::Compute::Formats::SUMMARY]) end it "#list_flavors_detail" do @compute.list_flavors_detail.body. must_match_schema('flavors' => [@flavor_format]) end it "#create_flavor(attributes)" do attributes = { :flavor_id => '100', :name => 'shindo test flavor', :disk => 10, :ram => 10, :vcpus => 10, :swap => "0", :rxtx_factor => 2.4, :ephemeral => 0, :is_public => false } @compute.create_flavor(attributes).body. must_match_schema('flavor' => @flavor_format) end it "add_flavor_access(flavor_ref, tenant_id)" do @compute.add_flavor_access(100, 1).body. must_match_schema('flavor_access' => [{'tenant_id' => String, 'flavor_id' => String}]) end it "remove_flavor_access(flavor_ref, tenant_id)" do @compute.remove_flavor_access(100, 1).body. must_match_schema('flavor_access' => []) end it "list_tenants_with_flavor_access(flavor_ref)" do @compute.list_tenants_with_flavor_access(100).body. must_match_schema('flavor_access' => [{'tenant_id' => String, 'flavor_id' => String}]) end it "delete_flavor(flavor_id)" do @compute.delete_flavor('100').status.must_equal 202 end it "#get_flavor_metadata(flavor_ref)" do @compute.get_flavor_metadata("1").body. must_match_schema('extra_specs' => {'cpu_arch' => String}) end it "#create_flavor_metadata(flavor_ref, metadata)" do metadata = {:cpu_arch => 'x86_64'} @compute.create_flavor_metadata("1", metadata).body. must_match_schema('extra_specs' => {'cpu_arch' => String}) end end describe "failure" do it "#get_flavor_details(0)" do proc do @compute.get_flavor_details("0") end.must_raise Fog::OpenStack::Compute::NotFound end it "add_flavor_access(1234, 1)" do unless Fog.mocking? proc do @compute.add_flavor_access(1234, 1).body end.must_raise Fog::OpenStack::Compute::NotFound end end it "remove_flavor_access(1234, 1)" do unless Fog.mocking? proc do @compute.remove_flavor_access(1234, 1).body end.must_raise Fog::OpenStack::Compute::NotFound end end it "list_tenants_with_flavor_access(1234)" do unless Fog.mocking? proc do @compute.list_tenants_with_flavor_access(1234) end.must_raise Fog::OpenStack::Compute::NotFound end end it "get_flavor_metadata(flavor_ref)" do unless Fog.mocking? proc do @compute.get_flavor_metadata("1234").body end.must_raise Fog::OpenStack::Compute::NotFound end end it "create_flavor_metadata(flavor_ref)" do unless Fog.mocking? proc do metadata = {:cpu_arch => 'x86_64'} @compute.create_flavor_metadata("1234", metadata).body end.must_raise Fog::OpenStack::Compute::NotFound end end end end fog-openstack-1.1.5/test/requests/compute/helper.rb000066400000000000000000000017461476630434000224070ustar00rootroot00000000000000class OpenStack module Compute module Formats SUMMARY = { 'id' => String, 'name' => String, 'links' => Array } end end end def get_flavor_ref ENV['OPENSTACK_FLAVOR_REF'] || Fog::OpenStack::Compute.new.list_flavors.body['flavors'].first['id'] end def get_image_ref ENV['OPENSTACK_IMAGE_REF'] || Fog::OpenStack::Compute.new.list_images.body['images'].first['id'] end def get_volume_ref ENV['OPENSTACK_VOLUME_REF'] || Fog::OpenStack::Compute.new.list_volumes.body['volumes'].first['id'] end def get_flavor_ref_resize # by default we simply add one to the default flavor ref ENV['OPENSTACK_FLAVOR_REF_RESIZE'] || (get_flavor_ref.to_i + 1).to_s end def set_password_enabled pw_enabled = ENV['OPENSTACK_SET_PASSWORD_ENABLED'] || "true" return pw_enabled == "true" end def get_security_group_ref ENV['OPENSTACK_SECURITY_GROUP_REF'] || Fog::OpenStack::Compute.new.list_security_groups.body['security_groups'].first['name'] end fog-openstack-1.1.5/test/requests/compute/image_tests.rb000066400000000000000000000034041476630434000234250ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::OpenStack::Compute | image requests" do before do @image_format = { 'created' => Fog::Nullable::String, 'id' => String, 'name' => String, 'progress' => Fog::Nullable::Integer, 'status' => String, 'updated' => String, 'minRam' => Integer, 'minDisk' => Integer, 'server' => Fog::Nullable::Hash, 'metadata' => Hash, 'links' => Array } @compute = Fog::OpenStack::Compute.new end describe "success" do before do @image_id = Fog::OpenStack::Compute.new.images[0].id unless Fog.mocking? @compute.images.get(@image_id).wait_for { ready? } end end it "#get_image_details(#{@image_id})" do unless Fog.mocking? @compute.get_image_details(@image_id).body['image']. must_match_schema(@image_format) end end it "#list_images" do @compute.list_images.body. must_match_schema('images' => [OpenStack::Compute::Formats::SUMMARY]) end it "#list_images_detail" do @compute.list_images_detail.body. must_match_schema('images' => [@image_format]) end after do unless Fog.mocking? @compute.images.get(@image_id).wait_for { ready? } end end end describe "failure" do it "#delete_image(0)" do unless Fog.mocking? proc do @compute.delete_image(0) end.must_raise Fog::OpenStack::Compute::NotFound end end it "#get_image_details(0)" do unless Fog.mocking? proc do @compute.get_image_details(0) end.must_raise Fog::OpenStack::Compute::NotFound end end end end fog-openstack-1.1.5/test/requests/compute/keypair_tests.rb000066400000000000000000000016731476630434000240150ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | keypair requests" do before do @keypair_format = { "public_key" => String, "private_key" => String, "user_id" => String, "name" => String, "fingerprint" => String } @keypair_list_format = { "public_key" => String, "name" => String, "fingerprint" => String } end describe "success" do it "#create_key_pair((key_name, public_key = nil))" do Fog::OpenStack::Compute.new.create_key_pair('from_shindo_test').body. must_match_schema("keypair" => @keypair_format) end it "#list_key_pairs" do Fog::OpenStack::Compute.new.list_key_pairs.body. must_match_schema("keypairs" => [{"keypair" => @keypair_list_format}]) end it "#delete_key_pair(key_name)" do Fog::OpenStack::Compute.new.delete_key_pair('from_shindo_test').status.must_equal 202 end end end fog-openstack-1.1.5/test/requests/compute/limit_tests.rb000066400000000000000000000037041476630434000234640ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | limits requests" do before do @rate_limit_format = { 'regex' => String, 'uri' => String, 'limit' => Array } @rate_limit_usage_format = { 'next-available' => String, 'unit' => String, 'verb' => String, 'remaining' => Integer, 'value' => Integer } @absolute_limits_format = { 'maxServerMeta' => Integer, 'maxTotalInstances' => Integer, 'maxPersonality' => Integer, 'maxImageMeta' => Integer, 'maxPersonalitySize' => Integer, 'maxSecurityGroupRules' => Integer, 'maxTotalKeypairs' => Integer, 'maxSecurityGroups' => Integer, 'maxTotalCores' => Integer, 'maxTotalFloatingIps' => Integer, 'maxTotalRAMSize' => Integer, 'totalCoresUsed' => Integer, 'totalRAMUsed' => Integer, 'totalInstancesUsed' => Integer, 'totalSecurityGroupsUsed' => Integer, 'totalFloatingIpsUsed' => Integer } @limits_format = { 'rate' => Array, 'absolute' => Hash } end describe "success" do describe "#get_limits" do it "format" do Fog::OpenStack::Compute.new.get_limits.body['limits']. must_match_schema(@limits_format) end it "rate limit format" do Fog::OpenStack::Compute.new.get_limits.body['limits']['rate']. first.must_match_schema(@rate_limit_format) end it "rate limit usage format" do Fog::OpenStack::Compute.new.get_limits.body['limits']['rate']. first['limit'].first.must_match_schema(@rate_limit_usage_format) end it "absolute limits format" do Fog::OpenStack::Compute.new.get_limits.body['limits']['absolute']. must_match_schema(@absolute_limits_format) end end end end fog-openstack-1.1.5/test/requests/compute/quota_tests.rb000066400000000000000000000032711476630434000234760ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | quota requests" do before do identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant_id = identity.list_tenants.body['tenants'].first['id'] @quota_set_format = { 'key_pairs' => Integer, 'metadata_items' => Integer, 'injected_file_content_bytes' => Integer, 'injected_file_path_bytes' => Integer, 'injected_files' => Integer, 'ram' => Integer, 'floating_ips' => Integer, 'instances' => Integer, 'cores' => Integer, 'security_groups' => Fog::Nullable::Integer, 'security_group_rules' => Fog::Nullable::Integer, 'volumes' => Fog::Nullable::Integer, 'gigabytes' => Fog::Nullable::Integer, 'id' => String } @compute = Fog::OpenStack::Compute.new @quota = @compute.get_quota(@tenant_id).body['quota_set'] end describe "success" do it "#get_quota_defaults" do @compute.get_quota_defaults(@tenant_id).body. must_match_schema('quota_set' => @quota_set_format) end it "#get_quota" do @quota.must_match_schema(@quota_set_format) end it "#update_quota" do new_values = @quota.merge( 'floating_ips' => @quota['floating_ips'] / 2, 'cores' => @quota['cores'] / 2 ) @compute.update_quota(@tenant_id, new_values.clone).status.must_equal 200 @compute.get_quota(@tenant_id).body['quota_set'].must_equal new_values end end end fog-openstack-1.1.5/test/requests/compute/security_group_tests.rb000066400000000000000000000055761476630434000254420ustar00rootroot00000000000000require "test_helper" describe "Shindo.tests('@compute | security group requests" do before do @security_group = Hash.new @security_group_rule = Hash.new @security_group_format = { "id" => Integer, "rules" => Array, "tenant_id" => String, "name" => String, "description" => String } @security_group_rule_format = { "id" => Integer, "from_port" => Integer, "to_port" => Integer, "ip_protocol" => String, "group" => Hash, "ip_range" => Hash, "parent_group_id" => Integer } @compute = Fog::OpenStack::Compute.new @security_group = @compute.create_security_group('from_shindo_test', 'this is from the shindo test' ).body @security_group_id = @security_group['security_group']['id'] @security_group_rule = @compute.create_security_group_rule(@security_group_id, "tcp", 2222, 3333, "20.20.20.20/24" ).body @security_group_rule_id = @security_group_rule['security_group_rule']['id'] end describe "success" do it "#create_security_group(name, description)" do @security_group.must_match_schema("security_group" => @security_group_format) end it "#create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id=nil)" do @security_group_rule.must_match_schema("security_group_rule" => @security_group_rule_format) end it "#list_security_groups" do @compute.list_security_groups.body. must_match_schema("security_groups" => [@security_group_format]) end it "#get_security_group(security_group_id)" do @compute.get_security_group(@security_group_id).body. must_match_schema("security_group" => @security_group_format) end it "#get_security_group_rule" do @compute.create_security_group_rule(@security_group_id, "tcp", 2222, 3333, "20.20.20.20/24").body @compute.get_security_group_rule(@security_group_rule_id).body. must_match_schema("security_group_rule" => @security_group_rule_format) end it "#delete_security_group_rule(security_group_rule_id" do @compute.delete_security_group_rule(@security_group_rule_id).status.must_equal 202 end it "#delete_security_group(security_group_id" do @compute.delete_security_group(@security_group_id) groups = @compute.list_security_groups.body['security_groups'] groups.any? do |group| group['id'] == @security_group_id end.must_equal false end end end fog-openstack-1.1.5/test/requests/compute/server_tests.rb000066400000000000000000000313271476630434000236560ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::OpenStack::Compute | server requests" do def self.compute class_variable_get(:@@compute) end class_variable_set(:@@compute, Fog::OpenStack::Compute.new) def compute self.class.compute end describe "success" do before do @create_format = { 'adminPass' => String, 'id' => String, 'links' => Array, 'security_groups' => Fog::Nullable::Array, } @base_server_format = { 'id' => String, 'addresses' => Hash, 'flavor' => Hash, 'hostId' => String, 'metadata' => Hash, 'name' => String, 'progress' => Integer, 'status' => String, 'accessIPv4' => Fog::Nullable::String, 'accessIPv6' => Fog::Nullable::String, 'links' => Array, 'created' => String, 'updated' => String, 'user_id' => String, 'config_drive' => String, } @reservation_format = {'reservation_id' => String} @server_from_image_format = @base_server_format.merge('image' => Hash) @image_format = { 'created' => Fog::Nullable::String, 'id' => String, 'name' => String, 'progress' => Fog::Nullable::Integer, 'status' => String, 'updated' => String, 'minRam' => Integer, 'minDisk' => Integer, 'server' => Hash, 'metadata' => Hash, 'links' => Array } @image_id = get_image_ref @snapshot_id = nil @flavor_id = get_flavor_ref @security_group_name = get_security_group_ref @volume1_id = compute.create_volume('test', 'this is a test volume', 1).body["volume"]["id"] volume_data = { :delete_on_termination => true, :device_name => "vda", :volume_id => @volume1_id, :volume_size => 1 } @data = compute.create_server("test", nil, @flavor_id, "block_device_mapping" => volume_data).body['server'] @server_id = @data['id'] end it "#create_server('test', nil, #{@flavor_id}) with a block_device_mapping" do @data.must_match_schema(@create_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#get_server_details(#{@server_id})" do compute.get_server_details(@server_id).body['server']. must_match_schema(@base_server_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#block_device_mapping" do compute.servers.get(@server_id).volumes.first.id.must_equal @volume1_id end describe "with multiple block_device_mapping_v2" do before do @volume2_id = compute.create_volume('test', 'this is a test volume', 1).body["volume"]["id"] volume_data = [ { :boot_index => 0, :uuid => @volume1_id, :device_name => "vda", :source_type => "volume", :destination_type => "volume", :delete_on_termination => true, :volume_size => 20 }, { :boot_index => 1, :uuid => @volume2_id, :device_name => "vdb", :source_type => "volume", :destination_type => "volume", :delete_on_termination => true, :volume_size => 10 } ] data = compute.create_server("test", nil, @flavor_id, "block_device_mapping_v2" => volume_data ).body['server'] @server_id = data['id'] end it "#create_server('test', nil, #{@flavor_id})" do @data.must_match_schema(@create_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#get_server_details(#{@server_id})" do compute.get_server_details(@server_id).body['server']. must_match_schema(@base_server_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#block_device_mapping_v2" do # Breaks sometimes: "Expected: ["56", "56"] <=> Actual: ["56"]" skip unless Minitest::Test::UNIT_TESTS_CLEAN compute.servers.get(@server_id).volumes.collect(&:id).sort. must_equal [@volume1_id, @volume2_id].sort end end describe "single server from image" do before do @data = compute.create_server("test", @image_id, @flavor_id).body['server'] @server_id = @data['id'] compute.servers.get(@server_id).wait_for { ready? } unless Fog.mocking? # Fog::OpenStack::Compute.new.servers.get(@server_id).wait_for { ready? } end it "#create_server('test', #{@image_id}, 19)" do @data.must_match_schema(@create_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#get_server_details(#{@server_id})" do compute.get_server_details(@server_id).body['server']. must_match_schema(@server_from_image_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end end describe "Multiple create from image" do before do @data = compute.create_server("test", @image_id, @flavor_id, "min_count" => 2, "return_reservation_id" => "True").body @reservation_id = @data['reservation_id'] @multi_create_servers = [] if Fog.mocking? @multi_create_servers = [Fog::Mock.random_numbers(6).to_s, Fog::Mock.random_numbers(6).to_s] else @multi_create_servers = compute.list_servers_detail( 'reservation_id' => @reservation_id ).body['servers'].collect { |server| server['id'] } end end it "#create_server('test', @image_id , 19, {'min_count' => 2, 'return_reservation_id' => 'True'})" do @data.must_match_schema(@reservation_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end it "#validate_multi_create" do @multi_create_servers.size.must_equal 2 end end # LIST it "#list_servers" do compute.list_servers.body. must_match_schema({'servers' => [OpenStack::Compute::Formats::SUMMARY]}, nil, :allow_extra_keys => true, :allow_optional_rules => true) end # DETAILS it "#list_servers_detail" do compute.list_servers_detail.body["servers"][0]. must_match_schema(@server_from_image_format, nil, :allow_extra_keys => true, :allow_optional_rules => true) end # CHANGE PASSWORD it "#change_server_password(#{@server_id}, 'fogupdatedserver')" do if set_password_enabled compute.change_server_password(@server_id, 'foggy').status.must_equal 202 compute.servers.get(@server_id).wait_for { ready? } unless Fog.mocking? end end # UPDATE SERVER NAME it "#update_server(#{@server_id}, :name => 'fogupdatedserver')" do compute.update_server(@server_id, :name => 'fogupdatedserver').status.must_equal 200 compute.servers.get(@server_id).wait_for { ready? } unless Fog.mocking? end # ADD SECURITY GROUP it "#add_security_group(#{@server_id}, #{@security_group_name})" do compute.add_security_group(@server_id, @security_group_name).status.must_equal 200 end # REMOVE SECURITY GROUP it "#remove_security_group(#{@server_id}, #{@security_group_name})" do compute.remove_security_group(@server_id, @security_group_name).status.must_equal 200 end describe "Create image with metadata" do before do @data = compute.create_image(@server_id, 'fog', "foo" => "bar").body @snapshot_id = @data['image']['id'] # compute.images.get(@snapshot_id).wait_for { ready? } end it "#create_image(#{@server_id}, 'fog')" do @data.must_match_schema('image' => @image_format) end it "#rebuild_server(#{@server_id}, #{@snapshot_id}, 'fog')" do compute.rebuild_server( @server_id, @snapshot_id, 'fog', 'newpass', "foo" => "bar" ).body.must_match_schema({'server' => @server_from_image_format}, nil, :allow_extra_keys => true, :allow_optional_rules => true) compute.servers.get(@server_id).wait_for { ready? } unless Fog.mocking? end # RESIZE it "#resize_server(#{@server_id}, #{get_flavor_ref_resize})" do compute.resize_server(@server_id, get_flavor_ref_resize).status.must_equal 202 unless Fog.mocking? compute.servers.get(@server_id).wait_for { state == 'VERIFY_RESIZE' } end end # RESIZE CONFIRM it "#resize_confirm(#{@server_id}, #{get_flavor_ref_resize})" do compute.confirm_resize_server(@server_id).status.must_equal 204 unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end # REBOOT - HARD it "#reboot_server(#{@server_id}, 'HARD')" do compute.reboot_server(@server_id, 'HARD').status.must_equal 202 unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end # REBOOT - SOFT it "#reboot_server(#{@server_id}, 'SOFT')" do compute.reboot_server(@server_id, 'SOFT').status.must_equal 202 unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end # STOP it "#stop_server(#{@server_id})" do compute.stop_server(@server_id).must_equal true end # START it "#start_server(#{@server_id})" do compute.start_server(@server_id).must_equal true unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end it "#shelve_server(#{@server_id}" do compute.shelve_server(@server_id).must_equal true unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end it "#unshelve_server(#{@server_id})" do compute.unshelve_server(@server_id).must_equal true unless Fog.mocking? compute.servers.get(@server_id).wait_for { ready? } end end # DELETE it "#servers.delete(#{@server_id})" do compute.servers.delete(@server_id) end # DELETE IMAGE it "#delete_image(#{@snapshot_id})" do Fog::OpenStack::Compute.new.servers.get(@server_id).wait_for { ready? } assert(compute.delete_image(@snapshot_id)) end end end describe "failure" do it "#delete_server(0)" do proc do self.class.compute.delete_server(0) end.must_raise Fog::OpenStack::Compute::NotFound end it "#get_server_details(0)" do proc do self.class.compute.get_server_details(0) end.must_raise Fog::OpenStack::Compute::NotFound end it "#update_server(0, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver')" do proc do self.class.compute.update_server(0, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver') end.must_raise Fog::OpenStack::Compute::NotFound end it "#reboot_server(0)" do unless Fog.mocking? proc do self.class.compute.reboot_server(0) end.must_raise Fog::OpenStack::Compute::NotFound end end it "#start_server(0)" do unless Fog.mocking? proc do self.class.compute.start_server(0) end.must_raise Fog::OpenStack::Compute::NotFound end end it "#stop_server(0)" do unless Fog.mocking? proc do self.class.compute.stop_server(0) end.must_raise Fog::OpenStack::Compute::NotFound end end end end fog-openstack-1.1.5/test/requests/compute/service_tests.rb000066400000000000000000000025641476630434000240110ustar00rootroot00000000000000require "test_helper" describe "Shindo.tests('Fog::OpenStack::Compute.new | service requests" do before do @service_format = { "id" => Integer, "binary" => String, "host" => String, "state" => String, "status" => String, "updated_at" => String, "zone" => String, 'disabled_reason' => Fog::Nullable::String } @services = Fog::OpenStack::Compute.new.list_services.body @service = @services['services'].last end describe "success" do it "#list_services" do @services.must_match_schema('services' => [@service_format]) end it "#disable_service" do Fog::OpenStack::Compute.new.disable_service( @service['host'], @service['binary'] ).body["service"]["status"].must_equal "disabled" end it "#disable_service_log_reason" do disabled_service = Fog::OpenStack::Compute.new.disable_service_log_reason( @service['host'], @service['binary'], 'reason' ).body disabled_service["service"]["status"].must_equal "disabled" disabled_service["service"]["disabled_reason"].must_equal "test2" end it "#enable_service" do Fog::OpenStack::Compute.new.enable_service( @service['host'], @service['binary'] ).body["service"]["status"].must_equal "enabled" end end end fog-openstack-1.1.5/test/requests/compute/tenant_tests.rb000066400000000000000000000012161476630434000236330ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | tenant requests" do before do @tenant_format = { 'id' => String, 'name' => String, 'enabled' => Fog::Boolean, 'description' => Fog::Nullable::String } end describe "success" do it "#list_tenants" do identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') identity.list_tenants.body. must_match_schema('tenants_links' => Array, 'tenants' => [@tenant_format]) end it "#set_tenant admin" do Fog::OpenStack::Compute.new.set_tenant("admin").must_equal true end end end fog-openstack-1.1.5/test/requests/compute/volume_tests.rb000066400000000000000000000024331476630434000236530ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Compute | volume requests" do before do @volume_format = { 'id' => String, 'displayName' => String, 'size' => Integer, 'displayDescription' => String, 'status' => String, 'snapshotId' => Fog::Nullable::String, 'availabilityZone' => String, 'attachments' => Array, 'volumeType' => Fog::Nullable::String, 'createdAt' => String, 'metadata' => Hash } @compute = Fog::OpenStack::Compute.new @volume = @compute.create_volume('loud', 'this is a loud volume', 3).body end describe "success" do it "#create_volume" do @volume.must_match_schema('volume' => @volume_format) end it "#list_volumes" do @compute.list_volumes.body.must_match_schema('volumes' => [@volume_format]) end describe "body" do before do @volume_id = @compute.volumes.all.first.id end it "#get_volume_detail" do @compute.get_volume_details(@volume_id). body.must_match_schema('volume' => @volume_format) end it "delete_volume" do @compute.delete_volume(@volume_id).status.must_equal 204 end end end end fog-openstack-1.1.5/test/requests/container_infra/000077500000000000000000000000001476630434000222605ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/container_infra/bay_model_tests.rb000066400000000000000000000066251476630434000257730ustar00rootroot00000000000000require 'test_helper' require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | bay model requests" do before do @bay_model_format = { "insecure_registry" => Fog::Nullable::String, "http_proxy" => Fog::Nullable::String, "updated_at" => Fog::Nullable::String, "floating_ip_enabled" => Fog::Nullable::Boolean, "fixed_subnet" => Fog::Nullable::String, "master_flavor_id" => Fog::Nullable::String, "uuid" => Fog::Nullable::String, "no_proxy" => Fog::Nullable::String, "https_proxy" => Fog::Nullable::String, "tls_disabled" => Fog::Nullable::Boolean, "keypair_id" => String, "public" => Fog::Nullable::Boolean, "labels" => Fog::Nullable::Hash, "docker_volume_size" => Fog::Nullable::Integer, "server_type" => Fog::Nullable::String, "external_network_id" => Fog::Nullable::String, "cluster_distro" => Fog::Nullable::String, "image_id" => Fog::Nullable::String, "volume_driver" => Fog::Nullable::String, "registry_enabled" => Fog::Nullable::Boolean, "docker_storage_driver" => Fog::Nullable::String, "apiserver_port" => Fog::Nullable::Integer, "name" => String, "created_at" => Fog::Nullable::String, "network_driver" => Fog::Nullable::String, "fixed_network" => Fog::Nullable::String, "coe" => Fog::Nullable::String, "flavor_id" => Fog::Nullable::String, "master_lb_enabled" => Fog::Nullable::Boolean, "dns_nameserver" => Fog::Nullable::String } end describe "success" do before do attributes = { :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 } @bay = container_infra.create_bay_model(attributes).body end it "#create_bay_model" do @bay.must_match_schema(@bay_model_format) end it "#list_bay_models" do container_infra.list_bay_models.body.must_match_schema('baymodels' => [@bay_model_format]) end it "#get_bay_model" do bay_model_uuid = container_infra.bay_models.all.first.uuid container_infra.get_bay_model(bay_model_uuid).body.must_match_schema(@bay_model_format) end it "#update_bay_model" do bay_model_uuid = container_infra.bay_models.all.first.uuid attributes = [ { "path" => "/master_lb_enabled", "value" => "True", "op" => "replace" }, { "path" => "/registry_enabled", "value" => "True", "op" => "replace" } ] container_infra.update_bay_model(bay_model_uuid, attributes).body. must_match_schema(@bay_model_format) end it "#delete_bay_model" do bay_model_uuid = container_infra.bay_models.all.first.uuid container_infra.delete_bay_model(bay_model_uuid).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/container_infra/bay_tests.rb000066400000000000000000000050231476630434000246020ustar00rootroot00000000000000require 'test_helper' require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | bay requests" do before do @bay_format = { "status" => String, "uuid" => String, "stack_id" => Fog::Nullable::String, "created_at" => Fog::Nullable::String, "api_address" => Fog::Nullable::String, "discovery_url" => Fog::Nullable::String, "updated_at" => Fog::Nullable::String, "master_count" => Fog::Nullable::Integer, "coe_version" => Fog::Nullable::String, "baymodel_id" => String, "master_addresses" => Fog::Nullable::Array, "node_count" => Fog::Nullable::Integer, "node_addresses" => Fog::Nullable::Array, "status_reason" => Fog::Nullable::String, "create_timeout" => Fog::Nullable::Integer, "name" => String } end describe "success" do before do attributes = { :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 } @bay_model = container_infra.create_bay_model(attributes).body attributes = { :name => "k8s", :baymodel_id => @bay_model['uuid'], :bay_create_timeout => 1 } @bay = container_infra.create_bay(attributes).body end it "#create_bay" do @bay.must_match_schema({"uuid" => String}) end it "#list_bays" do container_infra.list_bays.body.must_match_schema('bays' => [@bay_format]) end it "#get_bay" do bay_uuid = container_infra.bays.all.first.uuid container_infra.get_bay(bay_uuid).body.must_match_schema(@bay_format) end it "#update_bay" do bay_uuid = container_infra.bays.all.first.uuid attributes = [ { "path" => "/node_count", "value" => 2, "op" => "replace" } ] container_infra.update_bay(bay_uuid, attributes).body. must_match_schema({"uuid" => String}) end it "#delete_bay" do bay_uuid = container_infra.bays.all.first.uuid container_infra.delete_bay(bay_uuid).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/container_infra/certificate_tests.rb000066400000000000000000000033121476630434000263100ustar00rootroot00000000000000require 'test_helper' require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | certificate requests" do before do @certificate_format = { "pem" => String, "bay_uuid" => Fog::Nullable::String, "cluster_uuid" => Fog::Nullable::String, "csr" => Fog::Nullable::String } end describe "success" do before do attributes = { :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 } @cluster_template = container_infra.create_cluster_template(attributes).body attributes = { :name => "k8s", :cluster_template_id => @cluster_template['uuid'], :create_timeout => 1 } @cluster = container_infra.create_cluster(attributes).body attributes = { :cluster_uuid => @cluster['uuid'], :csr => "-----BEGIN CERTIFICATE REQUEST-----\nMIIEfzCCAmcCAQAwFDESMBAGA1UEAxMJWW91ciBOYW1lMIICIjANBgkqhkiG9w0B\n-----END CERTIFICATE REQUEST-----\n" } @certificate = container_infra.create_certificate(attributes).body end it "#create_certificate" do @certificate.must_match_schema(@certificate_format) end it "#get_certificate" do bay_uuid = container_infra.clusters.all.first.uuid container_infra.get_certificate(bay_uuid).body.must_match_schema(@certificate_format) end end end fog-openstack-1.1.5/test/requests/container_infra/cluster_template_tests.rb000066400000000000000000000066501476630434000274120ustar00rootroot00000000000000require 'test_helper' require 'helpers/container_infra_helper' @cluster_templates = [] describe "Fog::OpenStack::ContainerInfra | cluster template requests" do before do @cluster_template_format = { "insecure_registry" => Fog::Nullable::String, "http_proxy" => Fog::Nullable::String, "updated_at" => Fog::Nullable::String, "floating_ip_enabled" => Fog::Boolean, "fixed_subnet" => Fog::Nullable::String, "master_flavor_id" => Fog::Nullable::String, "uuid" => Fog::Nullable::String, "no_proxy" => Fog::Nullable::String, "https_proxy" => Fog::Nullable::String, "tls_disabled" => Fog::Boolean, "keypair_id" => String, "public" => Fog::Boolean, "labels" => Fog::Nullable::Hash, "docker_volume_size" => Integer, "server_type" => String, "external_network_id" => String, "cluster_distro" => String, "image_id" => String, "volume_driver" => String, "registry_enabled" => Fog::Nullable::Boolean, "docker_storage_driver" => String, "apiserver_port" => Fog::Nullable::Integer, "name" => String, "created_at" => Fog::Nullable::String, "network_driver" => String, "fixed_network" => Fog::Nullable::String, "coe" => String, "flavor_id" => String, "master_lb_enabled" => Fog::Boolean, "dns_nameserver" => String } end describe "success" do before do attributes = { :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 } @cluster_template = container_infra.create_cluster_template(attributes).body end it "#create_cluster_template" do @cluster_template.must_match_schema("uuid" => String) end it "#list_cluster_templates" do container_infra.list_cluster_templates.body.must_match_schema('clustertemplates' => [@cluster_template_format]) end it "#get_cluster_template" do cluster_template_uuid = container_infra.cluster_templates.all.first.uuid container_infra.get_cluster_template(cluster_template_uuid).body.must_match_schema(@cluster_template_format) end it "#update_cluster_template" do cluster_template_uuid = container_infra.cluster_templates.all.first.uuid attributes = [ { "path" => "/master_lb_enabled", "value" => "True", "op" => "replace" }, { "path" => "/registry_enabled", "value" => "True", "op" => "replace" } ] container_infra.update_cluster_template(cluster_template_uuid, attributes).body. must_match_schema(@cluster_template_format) end it "#delete_cluster_template" do cluster_template_uuid = container_infra.cluster_templates.all.first.uuid container_infra.delete_cluster_template(cluster_template_uuid).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/container_infra/cluster_tests.rb000066400000000000000000000052041476630434000255110ustar00rootroot00000000000000require 'test_helper' require 'helpers/container_infra_helper' describe "Fog::OpenStack::ContainerInfra | cluster requests" do before do @cluster_format = { "status" => String, "uuid" => String, "stack_id" => Fog::Nullable::String, "created_at" => Fog::Nullable::String, "api_address" => Fog::Nullable::String, "discovery_url" => Fog::Nullable::String, "updated_at" => Fog::Nullable::String, "master_count" => Fog::Nullable::Integer, "coe_version" => Fog::Nullable::String, "cluster_template_id" => String, "master_addresses" => Fog::Nullable::Array, "node_count" => Fog::Nullable::Integer, "node_addresses" => Fog::Nullable::Array, "status_reason" => Fog::Nullable::String, "create_timeout" => Fog::Nullable::Integer, "name" => String } end describe "success" do before do attributes = { :tls_disabled => true, :keypair_id => "kp", :server_type => "vm", :external_network_id => "public", :image_id => "fedora-atomic-latest", :name => "k8s-bm2", :coe => "kubernetes", :flavor_id => "m1.small", :docker_volume_size => 3 } @cluster_template = container_infra.create_cluster_template(attributes).body attributes = { :name => "k8s", :cluster_template_id => @cluster_template['uuid'], :create_timeout => 1 } @cluster = container_infra.create_cluster(attributes).body end it "#create_cluster" do @cluster.must_match_schema("uuid" => String) end it "#list_clusters" do container_infra.list_clusters.body.must_match_schema('clusters' => [@cluster_format]) end it "#get_cluster" do cluster_uuid = container_infra.clusters.all.first.uuid container_infra.get_cluster(cluster_uuid).body.must_match_schema(@cluster_format) end it "#update_cluster" do cluster_uuid = container_infra.clusters.all.first.uuid attributes = [ { "path" => "/node_count", "value" => 2, "op" => "replace" } ] container_infra.update_cluster(cluster_uuid, attributes).body. must_match_schema({"uuid" => String}) end it "#delete_cluster" do cluster_uuid = container_infra.clusters.all.first.uuid container_infra.delete_cluster(cluster_uuid).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/dns_v1/000077500000000000000000000000001476630434000203115ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/dns_v1/domain_tests.rb000066400000000000000000000010621476630434000233260ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::DNS::V1 | domain requests" do before do @dns = Fog::OpenStack::DNS::V1.new @domain_format = { "id" => String, "name" => String, "email" => String, "ttl" => Integer, "serial" => Integer, "description" => String, "created_at" => String, "updated_at" => String } end describe "success" do it "#list_domains" do @dns.list_domains.body.must_match_schema("domains" => [@domain_format]) end end end fog-openstack-1.1.5/test/requests/dns_v1/quota_tests.rb000066400000000000000000000016001476630434000232060ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::DNS::V1 | quota requests" do before do @dns = Fog::OpenStack::DNS::V1.new @project_id = Fog::Mock.random_numbers(6).to_s @quota_format = { "api_export_size" => Integer, "recordset_records" => Integer, "domain_records" => Integer, "domain_recordsets" => Integer, "domains" => Integer } @quota = @dns.get_quota(@project_id).body end describe "success" do it "#get_quota" do @quota.must_match_schema(@quota_format) end it "#update_quota" do new_values = @quota.merge( 'recordset_records' => @quota['recordset_records'] + 1, 'domains' => @quota['domains'] + 2 ) @dns.update_quota(@project_id, new_values.clone).status.must_equal 200 @dns.get_quota(@project_id).body.must_equal new_values end end end fog-openstack-1.1.5/test/requests/dns_v2/000077500000000000000000000000001476630434000203125ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/dns_v2/pool_tests.rb000066400000000000000000000013561476630434000230370ustar00rootroot00000000000000require "test_helper" require "helpers/dns_v2_helper" describe "Fog::OpenStack::DNS::V2 | pool requests" do before do @dns, = set_dns_data @pool_format = { "description" => String, "id" => String, "project_id" => String, "created_at" => String, "attributes" => String, "ns_records" => Array, "links" => Hash, "name" => String, "updated_at" => String } @pool_id = @dns.list_pools.body['pools'].first['id'] end describe "success" do it "#list_pools" do @dns.list_pools.body.must_match_schema("pools" => [@pool_format]) end it "#get_pool" do @dns.get_pool(@pool_id).body.must_match_schema(@pool_format) end end end fog-openstack-1.1.5/test/requests/dns_v2/quota_tests.rb000066400000000000000000000017741476630434000232230ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::DNS::V2 | quota requests" do before do @dns = Fog::OpenStack::DNS::V2.new @project_id = @dns.respond_to?(:current_tenant) ? @dns.current_tenant['id'] : Fog::Mock.random_numbers(6).to_s @quota_format = { "api_export_size" => Integer, "recordset_records" => Integer, "zone_records" => Integer, "zone_recordsets" => Integer, "zones" => Integer } @quota = @dns.get_quota(@project_id).body end describe "success" do it "#get_quota" do @quota.must_match_schema(@quota_format) end it "#update_quota" do new_values = @quota.merge( 'recordset_records' => @quota['recordset_records'] + 1, 'zones' => @quota['zones'] + 2 ) @dns.update_quota(@project_id, new_values.clone).status.must_equal 200 @dns.get_quota(@project_id).body.must_equal new_values # turn back @dns.update_quota(@project_id, @quota) end end end fog-openstack-1.1.5/test/requests/dns_v2/recordset_tests.rb000066400000000000000000000043011476630434000240510ustar00rootroot00000000000000require "test_helper" require "helpers/dns_v2_helper" describe "Fog::OpenStack::DNS::V2 | recordset requests" do before do @dns, @zone, @zone_id = set_dns_data @recordset = @dns.create_recordset(@zone_id, 'test.example.org', 'A', ['10.0.0.1']) @recordset_format = { "description" => String, "links" => Hash, "updated_at" => String, "records" => Array, "ttl" => Integer, "id" => String, "name" => String, "project_id" => String, "zone_id" => String, "zone_name" => String, "created_at" => String, "version" => Integer, "type" => String, "status" => String, "action" => String } recordset_links_format = { "self" => String, "next" => String } recordset_metadata_format = { "total_count" => Integer } @recordset_list_format = { "recordsets" => [@recordset_format], "links" => recordset_links_format, "metadata" => recordset_metadata_format } end describe "success" do it "#list_recordsets deprecated" do recordset_list_body = @dns.list_recordsets(@zone_id).body recordset_list_body.must_match_schema(@recordset_list_format) recordset_list_body['recordsets'].sample['zone_id'].must_equal(@zone_id) end it "#list_recordsets" do recordset_list_body = @dns.list_recordsets(:zone_id => @zone_id).body recordset_list_body.must_match_schema(@recordset_list_format) recordset_list_body['recordsets'].sample['zone_id'].must_equal(@zone_id) end it "#create_recordset" do @recordset.body.must_match_schema(@recordset_format) end it "#get_recordset" do @dns.get_recordset(@zone_id, @recordset.body['id']).body.must_match_schema(@recordset_format) end it "#update_recordset" do @dns.update_recordset( @zone_id, @recordset.body['id'], "email" => 'new_hostmaster@test.example.org' ).body.must_match_schema(@recordset_format) end it "#delete_recordset" do @dns.delete_recordset(@zone_id, @recordset.body['id']).body.must_match_schema(@recordset_format) end end end fog-openstack-1.1.5/test/requests/dns_v2/zone_tests.rb000066400000000000000000000024761476630434000230450ustar00rootroot00000000000000require "test_helper" require "helpers/dns_v2_helper" describe "Fog::OpenStack::DNS::V2 | zone requests" do before do @dns, @zone, @zone_id = set_dns_data @zone_format = { "id" => String, "pool_id" => String, "project_id" => String, "name" => String, "email" => String, "ttl" => Integer, "serial" => Integer, "status" => String, "action" => String, "description" => String, "masters" => Array, "type" => String, "transferred_at" => String, "version" => Integer, "created_at" => String, "updated_at" => String, "links" => Hash } end describe "success" do it "#list_zones" do @dns.list_zones.body.must_match_schema("zones" => [@zone_format]) end it "#create_zone" do @zone.body.must_match_schema(@zone_format) end it "#get_zone" do @dns.get_zone(@zone_id).body.must_match_schema(@zone_format) end it "#update_zone" do @dns.update_zone(@zone_id, "email" => 'new_hostmaster@example.org').body.must_match_schema(@zone_format) end it "#delete_zone" do @dns.delete_zone(@zone_id).body.must_match_schema(@zone_format) end end end fog-openstack-1.1.5/test/requests/event/000077500000000000000000000000001476630434000202405ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/event/event_tests.rb000066400000000000000000000007411476630434000231320ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Event | event requests" do before do @metering = Fog::OpenStack::Event.new @event_format = { 'message_id' => String, 'event_type' => String } end describe "success" do it "#list_events" do @metering.list_events.body. must_match_schema([@event_format]) end it "#get_event" do @metering.get_event('test').body. must_match_schema(@event_format) end end end fog-openstack-1.1.5/test/requests/identity/000077500000000000000000000000001476630434000207505ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/identity/ec2_credentials_tests.rb000066400000000000000000000024301476630434000255440ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::Identity[:openstack] | EC2 credential requests" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @credential_format = { 'access' => String, 'tenant_id' => String, 'secret' => String, 'user_id' => String, } @user_id = OpenStack::Identity.get_user_id(@identity) @tenant_id = OpenStack::Identity.get_tenant_id(@identity) @response = @identity.create_ec2_credential(@user_id, @tenant_id) @ec2_credential = @response.body['credential'] end describe "success" do it "#create_ec2_credential" do @response.body.must_match_schema('credential' => @credential_format) end it "#get_ec2_credential" do @identity.get_ec2_credential(@user_id, @ec2_credential['access']).body. must_match_schema('credential' => @credential_format) end it "#list_ec2_credentials" do @identity.list_ec2_credentials(@user_id).body. must_match_schema('credentials' => [@credential_format]) end it "#delete_ec2_credential" do @identity.delete_ec2_credential(@user_id, @ec2_credential['access']). status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/identity/helper.rb000066400000000000000000000004551476630434000225600ustar00rootroot00000000000000class OpenStack module Identity def self.get_tenant_id(identity) ENV['OPENSTACK_TENANT_NAME'] || identity.list_tenants.body['tenants'].first['id'] end def self.get_user_id(identity) ENV['OPENSTACK_USER_ID'] || identity.list_users.body['users'].first['id'] end end end fog-openstack-1.1.5/test/requests/identity/role_tests.rb000066400000000000000000000031241476630434000234600ustar00rootroot00000000000000require "test_helper" describe "Fog::Identity[:openstack] | role requests" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @role_format = { 'id' => String, 'name' => String } @user = @identity.list_users.body['users'].first @tenant = @identity.list_tenants.body['tenants'].first @role = @identity.create_role("Role Name").body['role'] end describe "success" do it "#create_role('Role Name')" do @role.must_match_schema(@role_format, nil, :allow_optional_rules => false) end it "#list_roles" do @identity.list_roles.body.must_match_schema('roles' => [@role_format]) end it "#get_role" do @identity.get_role(@role['id']).body['role'].must_match_schema(@role_format) end it "#create_user_role(@tenant['id'], @user['id'], @role['id'])" do @identity.create_user_role(@tenant['id'], @user['id'], @role['id']).body['role']. must_match_schema(@role_format) end it "#list_roles_for_user_on_tenant" do @identity.list_roles_for_user_on_tenant(@tenant['id'], @user['id']).body['roles']. must_match_schema([@role_format]) end it "#delete_user_role with tenant" do @identity.delete_user_role(@tenant['id'], @user['id'], @role['id']).body. must_equal "" end it "#delete_user_role with tenant" do @identity.delete_user_role(@tenant['id'], @user['id'], @role['id']).status. must_equal 204 end it "#delete_role" do @identity.delete_role(@role['id']).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/identity/tenant_tests.rb000066400000000000000000000036151476630434000240150ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::Identity[:openstack] | tenant requests" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant_format = { 'id' => String, 'name' => String, 'enabled' => Fog::Nullable::Boolean, 'description' => Fog::Nullable::String } @role_format = { 'id' => String, 'name' => String } @tenant_name = Fog::Mock.random_hex(64) @tenant = @identity.create_tenant('name' => @tenant_name).body end describe "success" do it "#list_tenants" do @identity.list_tenants.body.must_match_schema('tenants' => [@tenant_format], 'tenants_links' => []) end it "#list_roles_for_user_on_tenant(0,1)" do @identity.list_roles_for_user_on_tenant( @identity.current_tenant['id'], OpenStack::Identity.get_user_id(@identity) ).body.must_match_schema('roles' => [@role_format]) end it "#create_tenant" do @tenant.must_match_schema('tenant' => @tenant_format) end it "#get_tenant" do @identity.get_tenant(@tenant['tenant']['id']).body. must_match_schema('tenant' => @tenant_format) end it "#update_tenant check format" do tenant_name_update = Fog::Mock.random_hex(64) tenant = @identity.update_tenant( @tenant['tenant']['id'], 'name' => tenant_name_update ) tenant.body.must_match_schema('tenant' => @tenant_format) end it "#update_tenant update name" do tenant_name_update = Fog::Mock.random_hex(64) tenant = @identity.update_tenant( @tenant['tenant']['id'], 'name' => tenant_name_update).body tenant['tenant']['name'].must_equal tenant_name_update end it "#delete_tenant" do @identity.delete_tenant(@tenant['tenant']['id']) end end end fog-openstack-1.1.5/test/requests/identity/user_tests.rb000066400000000000000000000030071476630434000234750ustar00rootroot00000000000000require "test_helper" require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) describe "Fog::Identity[:openstack] | user requests" do before do @identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @user_format = { 'id' => String, 'name' => String, 'enabled' => Fog::Boolean, 'email' => String, 'tenantId' => Fog::Nullable::String } @user_name = Fog::Mock.random_hex(64) @user_name_update = Fog::Mock.random_hex(64) @user = @identity.create_user( @user_name, "mypassword", "morph@example.com", OpenStack::Identity.get_tenant_id(@identity) ).body['user'] end describe "success" do it "#create_user(#{@user_name}, 'mypassword', 'morph@example.com', 't3n4nt1d', true)" do @user.must_match_schema(@user_format, nil, :allow_optional_rules => false) end it "#list_users" do @identity.list_users.body["users"][0].must_match_schema(@user_format) end it "#get_user_by_id" do @identity.get_user_by_id(@user['id']).body['user'].must_match_schema(@user_format) end it "#get_user_by_name" do @identity.get_user_by_name(@user['name']).body['user'].must_match_schema(@user_format) end it "#update_user" do @identity.update_user( @user['id'], :name => @user_name_update, :email => 'fog@test.com' ).status.must_equal 200 end it "#delete_user" do @identity.delete_user(@user['id']).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/image/000077500000000000000000000000001476630434000202015ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/image/image_tests.rb000066400000000000000000000120621476630434000230330ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Image | image requests" do before(:all) do openstack = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @image_attributes = { :name => 'new image', :owner => openstack.current_tenant['id'], :is_public => true, :copy_from => 'http://website.com/image.iso', :disk_format => 'iso', :properties => { :user_id => openstack.current_user['id'], :owner_id => openstack.current_tenant['id'] }, :container_format => 'bare' } @image_format = { 'name' => String, 'container_format' => String, 'disk_format' => String, 'checksum' => String, 'id' => String, 'size' => Integer } @detailed_image_format = { 'id' => String, 'name' => String, 'size' => Integer, 'disk_format' => String, 'container_format' => String, 'checksum' => String, 'min_disk' => Integer, 'created_at' => String, 'deleted_at' => Fog::Nullable::String, 'updated_at' => String, 'deleted' => Fog::Boolean, 'protected' => Fog::Boolean, 'is_public' => Fog::Boolean, 'status' => String, 'min_ram' => Integer, 'owner' => Fog::Nullable::String, 'properties' => Hash } @image_meta_format = { 'X-Image-Meta-Is_public' => String, 'X-Image-Meta-Min_disk' => Fog::Nullable::String, 'X-Image-Meta-Property-Ramdisk_id' => Fog::Nullable::String, 'X-Image-Meta-Disk_format' => Fog::Nullable::String, 'X-Image-Meta-Created_at' => String, 'X-Image-Meta-Container_format' => Fog::Nullable::String, 'Etag' => String, 'Location' => String, 'X-Image-Meta-Protected' => String, 'Date' => String, 'X-Image-Meta-Name' => String, 'X-Image-Meta-Min_ram' => String, 'Content-Type' => String, 'X-Image-Meta-Updated_at' => String, 'X-Image-Meta-Property-Kernel_id' => Fog::Nullable::String, 'X-Image-Meta-Size' => String, 'X-Image-Meta-Checksum' => Fog::Nullable::String, 'X-Image-Meta-Deleted' => String, 'Content-Length' => String, 'X-Image-Meta-Status' => String, 'X-Image-Meta-Owner' => String, 'X-Image-Meta-Id' => String } @image_members_format = [ { 'can_share' => Fog::Nullable::Boolean, 'member_id' => String } ] if Fog.mocking? image_attributes = @image_attributes else require 'tempfile' image_attributes = @image_attributes.dup image_attributes.delete(:copy_from) @test_iso = Tempfile.new(['fog_test_iso', '.iso']) @test_iso.write Fog::Mock.random_hex(32) @test_iso.close image_attributes[:location] = @test_iso.path end @instance = Fog::OpenStack::Image.new.create_image(image_attributes).body end after do @test_iso.delete if @test_iso end describe "success" do it "#list_public_images" do Fog::OpenStack::Image.new.list_public_images.body.must_match_schema('images' => [@image_format]) end it "#list_public_images_detailed" do Fog::OpenStack::Image.new.list_public_images_detailed.body. must_match_schema('images' => [@detailed_image_format]) end it "#create_image" do @instance.must_match_schema('image' => @detailed_image_format) end it "#get_image" do Fog::OpenStack::Image.new.get_image(@instance['image']['id']).headers. must_match_schema(@image_meta_format) end it "#update_image" do Fog::OpenStack::Image.new.update_image( :id => @instance['image']['id'], :name => 'edit image' ).body['image'].must_match_schema(@detailed_image_format) end it "#add_member_to_image" do [200, 204].must_include( Fog::OpenStack::Image.new.add_member_to_image( @instance['image']['id'], @instance['image']['owner'] ).status ) end it "#get_image_members" do [200, 204].must_include(Fog::OpenStack::Image.new.get_image_members(@instance['image']['id']).status) end it "#get_shared_images" do [200, 204].must_include(Fog::OpenStack::Image.new.get_shared_images(@instance['image']['owner']).status) end it "#remove_member_from_image" do [200, 204].must_include( Fog::OpenStack::Image.new.remove_member_from_image( @instance['image']['id'], @instance['image']['owner'] ).status ) end it "#delete_image" do Fog::OpenStack::Image.new.delete_image(@instance['image']['id']).status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/introspection/000077500000000000000000000000001476630434000220175ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/introspection/introspection_tests.rb000066400000000000000000000325171476630434000264760ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Introspection | Introspection requests" do before do @inspector = Fog::OpenStack::Introspection.new @node_uuid = Fog::UUID.uuid @introspection_finished = { "error" => "null", "finished" => "true" } @introspection_data = { "cpu_arch" => String, "macs" => Array, "root_disk" => { "rotational" => Fog::Boolean, "vendor" => String, "name" => String, "wwn_vendor_extension" => Fog::Nullable::String, "wwn_with_extension" => Fog::Nullable::String, "model" => Fog::Nullable::String, "wwn" => Fog::Nullable::String, "serial" => Fog::Nullable::String, "size" => Integer, }, "extra" => { "network" => { "eth0" => { "vlan-challenged" => String, "tx-udp_tnl-segmentation" => String, "ipv4-network" => String, "rx-vlan-stag-filter" => String, "highdma" => String, "tx-nocache-copy" => String, "tx-gso-robust" => String, "fcoe-mtu" => String, "netns-local" => String, "udp-fragmentation-offload" => String, "serial" => String, "latency" => Integer, "tx-checksumming/tx-checksum-ipv6" => String, "tx-checksumming/tx-checksum-ipv4" => String, "ipv4-netmask" => String, "tcp-segmentation-offload/tx-tcp-segmentation" => String, "tx-ipip-segmentation" => String, "rx-vlan-offload" => String, "tx-gre-segmentation" => String, "tx-checksumming/tx-checksum-ip-generic" => String, "tcp-segmentation-offload/tx-tcp-ecn-segmentation" => String, "tx-checksumming/tx-checksum-fcoe-crc" => String, "ipv4" => String, "businfo" => String, "rx-vlan-stag-hw-parse" => String, "tx-vlan-offload" => String, "product" => String, "vendor" => String, "tx-checksumming/tx-checksum-sctp" => String, "driver" => String, "tx-sit-segmentation" => String, "busy-poll" => String, "tx-vlan-stag-hw-insert" => String, "scatter-gather/tx-scatter-gather" => String, "link" => String, "ntuple-filters" => String, "rx-all" => String, "tcp-segmentation-offload" => String, "tcp-segmentation-offload/tx-tcp6-segmentation" => String, "rx-checksumming" => String, "rx-fcs" => String, "tx-lockless" => String, "generic-segmentation-offload" => String, "tx-fcoe-segmentation" => String, "tx-checksumming" => String, "ipv4-cidr" => Integer, "large-receive-offload" => String, "rx-vlan-filter" => String, "receive-hashing" => String, "scatter-gather/tx-scatter-gather-fraglist" => String, "generic-receive-offload" => String, "loopback" => String, "scatter-gather" => String, "tx-mpls-segmentation" => String }, "eth1" => { "vlan-challenged" => String, "tx-udp_tnl-segmentation" => String, "tx-vlan-stag-hw-insert" => String, "rx-vlan-stag-filter" => String, "highdma" => String, "tx-nocache-copy" => String, "tx-gso-robust" => String, "fcoe-mtu" => String, "netns-local" => String, "udp-fragmentation-offload" => String, "serial" => String, "latency" => Integer, "tx-checksumming/tx-checksum-ipv6" => String, "tx-checksumming/tx-checksum-ipv4" => String, "tx-fcoe-segmentation" => String, "tcp-segmentation-offload/tx-tcp-segmentation" => String, "tx-ipip-segmentation" => String, "rx-vlan-offload" => String, "tx-gre-segmentation" => String, "tx-checksumming/tx-checksum-ip-generic" => String, "tcp-segmentation-offload/tx-tcp-ecn-segmentation" => String, "tx-checksumming/tx-checksum-fcoe-crc" => String, "rx-vlan-stag-hw-parse" => String, "businfo" => String, "tx-vlan-offload" => String, "product" => String, "vendor" => String, "tx-checksumming/tx-checksum-sctp" => String, "driver" => String, "tx-sit-segmentation" => String, "busy-poll" => String, "scatter-gather/tx-scatter-gather" => String, "link" => String, "ntuple-filters" => String, "rx-all" => String, "tcp-segmentation-offload" => String, "tcp-segmentation-offload/tx-tcp6-segmentation" => String, "rx-checksumming" => String, "tx-lockless" => String, "generic-segmentation-offload" => String, "loopback" => String, "tx-checksumming" => String, "large-receive-offload" => String, "rx-vlan-filter" => String, "receive-hashing" => String, "scatter-gather/tx-scatter-gather-fraglist" => String, "generic-receive-offload" => String, "rx-fcs" => String, "scatter-gather" => String, "tx-mpls-segmentation" => String } }, "firmware" => { "bios" => { "date" => String, "version" => String, "vendor" => String } }, "system" => { "kernel" => { "cmdline" => String, "version" => String, "arch" => String }, "product" => { "version" => String, "vendor" => String, "name" => String, "uuid" => String }, "os" => { "version" => String, "vendor" => String } }, "memory" => { "total" => { "size" => Integer } }, "disk" => { "vda" => { "optimal_io_size" => Integer, "physical_block_size" => Integer, "rotational" => Integer, "vendor" => String, "size" => Integer }, "logical" => {"count" => Integer} }, "cpu" => { "logical" => {"number" => Integer}, "physical_0" => { "physid" => Integer, "product" => String, "frequency" => Integer, "vendor" => String, "flags" => String }, "physical_1" => { "physid" => Integer, "product" => String, "frequency" => Integer, "vendor" => String, "flags" => String }, "physical_2" => { "physid" => Integer, "product" => String, "frequency" => Integer, "vendor" => String, "flags" => String }, "physical_3" => { "physid" => Integer, "product" => String, "frequency" => Integer, "vendor" => String, "flags" => String }, "physical" => {"number" => Integer} } }, "interfaces" => { "eth0" => { "ip" => String, "mac" => String } }, "cpus" => 4, "boot_interface" => String, "memory_mb" => Integer, "ipmi_address" => String, "inventory" => { "bmc_address" => String, "interfaces" => [ { "ipv4_address" => Fog::Nullable::String, "switch_port_descr" => Fog::Nullable::String, "switch_chassis_descr" => Fog::Nullable::String, "name" => String, "mac_address" => String }, { "ipv4_address" => Fog::Nullable::String, "switch_port_descr" => Fog::Nullable::String, "switch_chassis_descr" => Fog::Nullable::String, "name" => String, "mac_address" => String } ], "disks" => [ { "rotational" => Fog::Boolean, "vendor" => String, "name" => String, "wwn_vendor_extension" => Fog::Nullable::String, "wwn_with_extension" => Fog::Nullable::String, "model" => Fog::Nullable::String, "wwn" => Fog::Nullable::String, "serial" => Fog::Nullable::String, "size" => Integer } ], "system_vendor" => { "serial_number" => String, "product_name" => String, "manufacturer" => String }, "memory" => { "physical_mb" => Integer, "total" => Integer }, "cpu" => { "count" => Integer, "frequency" => String, "model_name" => String, "architecture" => String } }, "error" => Fog::Nullable::String, "local_gb" => Integer, "all_interfaces" => { "eth0" => { "ip" => Fog::Nullable::String, "mac" => String }, "eth1" => { "ip" => Fog::Nullable::String, "mac" => String } }, "logs" => String } end describe "success" do it "#create_introspection" do @inspector.create_introspection(@node_uuid).status.must_equal 202 end it "#abort_introspection" do @inspector.abort_introspection(@node_uuid).status.must_equal 202 end it "#get_introspection" do @inspector.get_introspection(@node_uuid).body.must_match_schema(@introspection_finished) end it "#get_introspection_details" do @inspector.get_introspection_details(@node_uuid).body.must_match_schema('data' => @introspection_data) end end end fog-openstack-1.1.5/test/requests/introspection/rules_tests.rb000066400000000000000000000024501476630434000247210ustar00rootroot00000000000000require "test_helper" describe "@inspector | Introspection rules requests" do before do @inspector = Fog::OpenStack::Introspection.new @rules_id = Fog::UUID.uuid @rules = { 'description' => Fog::Nullable::String, 'actions' => Array, 'conditions' => Array, 'uuid' => Fog::Nullable::String, } end describe "success" do it "#list_rules" do @inspector.list_rules.body.must_match_schema('rules' => @rules) end it "#create_rules" do attributes = { "actions" => { "action" => "set-attribute", "path" => "/driver_info/ipmi_address", "value" => "{data[inventory][bmc_address]}" }, "conditions" => { "field" => "node://property.path", "op" => "eq", "value" => "val", }, "description" => "", "uuid" => "" } @inspector.create_rules(attributes).body.must_match_schema('rules' => @rules) end it "#get_rules" do @inspector.get_rules(@rules_id).body.must_match_schema('rules' => @rules) end it "#delete_rules" do @inspector.delete_rules(@rules_id).status.must_equal 204 end it "#delete_rules_all" do @inspector.delete_rules_all.status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/metering/000077500000000000000000000000001476630434000207315ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/metering/event_tests.rb000066400000000000000000000007471476630434000236310ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Metering | event requests" do before do @metering = Fog::OpenStack::Metering.new @event_format = { 'message_id' => String, 'event_type' => String } end describe "success" do it "#list_events" do @metering.list_events.body. must_match_schema([@event_format]) end it "#get_event" do @metering.get_event('test').body. must_match_schema(@event_format) end end end fog-openstack-1.1.5/test/requests/metering/meter_tests.rb000066400000000000000000000030311476630434000236110ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Metering | meter requests" do before do @metering = Fog::OpenStack::Metering.new @sample_format = { 'counter_name' => String, 'user_id' => String, 'resource_id' => String, 'timestamp' => String, 'resource_metadata' => Hash, 'source' => String, 'counter_unit' => String, 'counter_volume' => Float, 'project_id' => String, 'message_id' => String, 'counter_type' => String } @meter_format = { 'user_id' => String, 'name' => String, 'resource_id' => String, 'project_id' => String, 'type' => String, 'unit' => String } @statistics_format = { 'count' => Integer, 'duration_start' => String, 'min' => Float, 'max' => Float, 'duration_end' => String, 'period' => Integer, 'period_end' => String, 'duration' => Float, 'period_start' => String, 'avg' => Float, 'sum' => Float } end describe "success" do it "#list_meters" do @metering.list_meters.body.must_match_schema([@meter_format]) end it "#get_samples" do @metering.get_samples('test').body.must_match_schema([@sample_format]) end it "#get_statistics" do @metering.get_statistics('test').body.must_match_schema([@statistics_format]) end end end fog-openstack-1.1.5/test/requests/metering/resource_tests.rb000066400000000000000000000010531476630434000243260ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Metering | resource requests" do before do @metering = Fog::OpenStack::Metering.new @resource_format = { 'resource_id' => String, 'project_id' => String, 'user_id' => String, 'metadata' => Hash } end describe "success" do it "#list_resource" do @metering.list_resources.body.must_match_schema([@resource_format]) end it "#get_resource" do @metering.get_resource('test').body.must_match_schema(@resource_format) end end end fog-openstack-1.1.5/test/requests/metric/000077500000000000000000000000001476630434000204025ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/metric/metric_test.rb000066400000000000000000000007121476630434000232510ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Metric | metric requests" do before do @metric = Fog::OpenStack::Metric.new end describe "success" do it "#list_metrics" do @metric.list_metrics.status.must_equal 200 end it "#get_metric" do @metric.get_metric('test').status.must_equal 200 end it "#get_metric_measures" do @metric.get_metric_measures('metricuuid123').status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/metric/resource_test.rb000066400000000000000000000012141476630434000236130ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Metric | metric requests" do before do @metric = Fog::OpenStack::Metric.new end describe "success" do it "#list_resources" do @metric.list_resources.status.must_equal 200 end it "#list_resources where type = instance_network_interface" do @metric.list_resources("instance_network_interface").status.must_equal 200 end it "#get_resource" do @metric.get_resource('uuid1234').status.must_equal 200 end it "#get_resource_metric_measures" do @metric.get_resource_metric_measures('uuid123', 'cpu_util').status.must_equal 200 end end end fog-openstack-1.1.5/test/requests/network/000077500000000000000000000000001476630434000206105ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/network/extension_tests.rb000066400000000000000000000014651476630434000244010ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | extension requests" do before do @extension_format = { 'id' => String, 'alias' => String, 'description' => String, 'links' => Array, 'name' => String } end describe "success" do it "#list_extensions" do network.list_extensions.body. must_match_schema('extensions' => [@extension_format]) end it "#get_extension" do extension_id = network.extensions.all.first.id network.get_extension(extension_id).body. must_match_schema('extension' => @extension_format) end end describe "failure" do it "#get_extension" do proc do network.get_extension(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/ike_policy_tests.rb000066400000000000000000000056551476630434000245210ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | ike_policy requests" do describe "success" do before do @ike_policy_format = { 'id' => String, 'name' => String, 'description' => String, 'tenant_id' => String, 'auth_algorithm' => String, 'encryption_algorithm' => String, 'pfs' => String, 'phase1_negotiation_mode' => String, 'lifetime' => Hash, 'ike_version' => String } attributes = { :name => 'test-ike-policy', :description => 'Test VPN IKE Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-256', :pfs => 'group5', :phase1_negotiation_mode => 'main', :lifetime => {'units' => 'seconds', 'value' => 3600}, :ike_version => 'v1' } @ike_policy = network.create_ike_policy(attributes).body end it "#create_ike_policy" do @ike_policy.must_match_schema('ikepolicy' => @ike_policy_format) end it "#list_ike_policies" do network.list_ike_policies.body. must_match_schema('ikepolicies' => [@ike_policy_format]) end it "#get_ike_policy" do ike_policy_id = network.ike_policies.all.first.id network.get_ike_policy(ike_policy_id).body. must_match_schema('ikepolicy' => @ike_policy_format) end it "#update_ike_policy" do ike_policy_id = network.ike_policies.all.first.id attributes = { :name => 'rename-test-ike-policy', :description => 'Test VPN IKE Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-256', :pfs => 'group5', :phase1_negotiation_mode => 'main', :lifetime => {'units' => 'seconds', 'value' => 3600}, :ike_version => 'v1' } network.update_ike_policy(ike_policy_id, attributes).body. must_match_schema('ikepolicy' => @ike_policy_format) end it "#delete_ike_policy" do ike_policy_id = network.ike_policies.all.first.id network.delete_ike_policy(ike_policy_id).status.must_equal 204 end end describe "failure" do it "#get_ike_policy" do proc do network.get_ike_policy(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_ike_policy" do proc do network.update_ike_policy(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_ike_policy" do proc do network.delete_ike_policy(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/ipsec_policy_tests.rb000066400000000000000000000056711476630434000250520ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Network | ipsec_policy requests" do before do @ipsec_policy_format = { 'id' => String, 'name' => String, 'description' => String, 'tenant_id' => String, 'lifetime' => Hash, 'pfs' => String, 'transform_protocol' => String, 'auth_algorithm' => String, 'encapsulation_mode' => String, 'encryption_algorithm' => String } end describe "success" do before do attributes = { :name => 'test-ipsec-policy', :description => 'Test VPN ipsec Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-128', :pfs => 'group5', :transform_protocol => 'esp', :lifetime => {'units' => 'seconds', 'value' => 3600}, :encapsulation_mode => 'tunnel' } @create_ipsec_policy = network.create_ipsec_policy(attributes).body end it "#create_ipsec_policy" do @create_ipsec_policy.must_match_schema('ipsecpolicy' => @ipsec_policy_format) end it "#list_ipsec_policies" do network.list_ipsec_policies.body. must_match_schema('ipsecpolicies' => [@ipsec_policy_format]) end it "#get_ipsec_policy" do ipsec_policy_id = network.ipsec_policies.all.first.id network.get_ipsec_policy(ipsec_policy_id).body. must_match_schema('ipsecpolicy' => @ipsec_policy_format) end it "#update_ipsec_policy" do ipsec_policy_id = network.ipsec_policies.all.first.id attributes = { :name => 'rename-test-ipsec-policy', :description => 'Test VPN ipsec Policy', :tenant_id => 'tenant_id', :auth_algorithm => 'sha1', :encryption_algorithm => 'aes-128', :pfs => 'group5', :transform_protocol => 'esp', :lifetime => {'units' => 'seconds', 'value' => 3600}, :encapsulation_mode => 'tunnel' } network.update_ipsec_policy(ipsec_policy_id, attributes).body. must_match_schema('ipsecpolicy' => @ipsec_policy_format) end it "#delete_ipsec_policy" do ipsec_policy_id = network.ipsec_policies.all.first.id network.delete_ipsec_policy(ipsec_policy_id).status.must_equal 204 end end describe "failure" do it "#get_ipsec_policy" do proc do network.get_ipsec_policy(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_ipsec_policy" do proc do network.update_ipsec_policy(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_ipsec_policy" do proc do network.delete_ipsec_policy(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/ipsec_site_connection_tests.rb000066400000000000000000000076021476630434000267320ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | ipsec_site_connection requests" do before do @ipsec_site_connection_format = { 'id' => String, 'name' => String, 'description' => String, 'status' => String, 'tenant_id' => String, 'admin_state_up' => Fog::Boolean, 'psk' => String, 'initiator' => String, 'auth_mode' => String, 'peer_cidrs' => Array, 'mtu' => Integer, 'peer_ep_group_id' => String, 'ikepolicy_id' => String, 'vpnservice_id' => String, 'dpd' => Hash, 'route_mode' => String, 'ipsecpolicy_id' => String, 'local_ep_group_id' => String, 'peer_address' => String, 'peer_id' => String } end describe "success" do before do vpnservice_id = "vpn" ikepolicy_id = "ike" ipsecpolicy_id = "ipsec" attributes = { :name => 'test-ipsec-site-connection', :description => 'Test VPN IPSec Site Connection', :tenant_id => 'tenant_id', :peer_address => "172.24.4.226", :peer_id => "172.24.4.226", :peer_cidrs => [], :psk => "secret", :mtu => 1500, :dpd => {"action" => "hold", "interval" => 30, "timeout" => 120}, :initiator => "bi-directional", :admin_state_up => true } @ipsec_site_connection = network.create_ipsec_site_connection( vpnservice_id, ikepolicy_id, ipsecpolicy_id, attributes ).body end it "#create_ipsec_site_connection" do @ipsec_site_connection.must_match_schema( 'ipsec_site_connection' => @ipsec_site_connection_format ) end it "#list_ipsec_site_connections" do network.list_ipsec_site_connections.body. must_match_schema('ipsec_site_connections' => [@ipsec_site_connection_format]) end it "#get_ipsec_site_connection" do ipsec_site_connection_id = network.ipsec_site_connections.all.first.id network.get_ipsec_site_connection(ipsec_site_connection_id).body. must_match_schema('ipsec_site_connection' => @ipsec_site_connection_format) end it "#update_ipsec_site_connection" do ipsec_site_connection_id = network.ipsec_site_connections.all.first.id attributes = { :name => 'rename-test-ipsec-site-connection', :description => 'Test VPN IPSec Site Connection', :tenant_id => 'tenant_id', :peer_address => "172.24.4.226", :peer_id => "172.24.4.226", :peer_cidrs => [], :psk => "secret", :mtu => 1500, :dpd => {"action" => "hold", "interval" => 30, "timeout" => 120}, :initiator => "bi-directional", :admin_state_up => true } network.update_ipsec_site_connection(ipsec_site_connection_id, attributes).body. must_match_schema('ipsec_site_connection' => @ipsec_site_connection_format) end it "#delete_ipsec_site_connection" do ipsec_site_connection_id = network.ipsec_site_connections.all.first.id network.delete_ipsec_site_connection(ipsec_site_connection_id).status.must_equal 204 end end describe "failure" do it "#get_ipsec_site_connection" do proc do network.get_ipsec_site_connection(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_ipsec_site_connection" do proc do network.update_ipsec_site_connection(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_ipsec_site_connection" do proc do network.delete_ipsec_site_connection(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/lb_health_monitor_tests.rb000066400000000000000000000072731476630434000260610ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | lb_health_monitor requests" do before do @lb_health_monitor_format = { 'id' => String, 'type' => String, 'delay' => Integer, 'timeout' => Integer, 'max_retries' => Integer, 'http_method' => String, 'url_path' => String, 'expected_codes' => String, 'status' => String, 'admin_state_up' => Fog::Boolean, 'tenant_id' => String } end describe "success" do before do @lb_pool = network.lb_pools.create( :subnet_id => 'subnet_id', :protocol => 'HTTP', :lb_method => 'ROUND_ROBIN' ) type = 'PING' delay = 1 timeout = 5 max_retries = 10 attributes = { :http_method => 'GET', :url_path => '/', :expected_codes => '200, 201', :admin_state_up => true, :tenant_id => 'tenant_id' } @lb_health_monitor = network.create_lb_health_monitor( type, delay, timeout, max_retries, attributes ).body end after do @lb_pool.destroy end it "#create_lb_health_monitor" do @lb_health_monitor.must_match_schema('health_monitor' => @lb_health_monitor_format) end it "#list_lb_health_monitors" do network.list_lb_health_monitors.body. must_match_schema('health_monitors' => [@lb_health_monitor_format]) end it "#get_lb_health_monitor" do lb_health_monitor_id = network.lb_health_monitors.all.first.id network.get_lb_health_monitor(lb_health_monitor_id).body. must_match_schema('health_monitor' => @lb_health_monitor_format) end it "#update_lb_health_monitor" do lb_health_monitor_id = network.lb_health_monitors.all.first.id attributes = { :delay => 5, :timeout => 10, :max_retries => 20, :http_method => 'POST', :url_path => '/varz', :expected_codes => '200', :admin_state_up => false } network.update_lb_health_monitor(lb_health_monitor_id, attributes).body. must_match_schema('health_monitor' => @lb_health_monitor_format) end it "#associate_lb_health_monitor" do lb_health_monitor_id = network.lb_health_monitors.all.first.id network.associate_lb_health_monitor(@lb_pool.id, lb_health_monitor_id).status.must_equal 200 end it "#disassociate_lb_health_monitor" do lb_health_monitor_id = network.lb_health_monitors.all.first.id network.disassociate_lb_health_monitor(@lb_pool.id, lb_health_monitor_id).status.must_equal 204 end it "#delete_lb_health_monitor" do lb_health_monitor_id = network.lb_health_monitors.all.first.id network.delete_lb_health_monitor(lb_health_monitor_id).status.must_equal 204 end end describe "failure" do it "#get_lb_health_monitor" do proc do network.get_lb_health_monitor(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_lb_health_monitor" do proc do network.update_lb_health_monitor(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#associate_lb_health_monitor" do proc do network.associate_lb_health_monitor(0, 0) end.must_raise Fog::OpenStack::Network::NotFound end it "#disassociate_lb_health_monitor" do proc do network.disassociate_lb_health_monitor(0, 0) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_lb_health_monitor" do proc do network.delete_lb_health_monitor(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/lb_member_tests.rb000066400000000000000000000042521476630434000243060ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | lb_member requests" do describe "success" do before do @lb_member_format = { 'id' => String, 'pool_id' => String, 'address' => String, 'protocol_port' => Integer, 'weight' => Integer, 'status' => String, 'admin_state_up' => Fog::Boolean, 'tenant_id' => String } pool_id = "pool_id" address = "10.0.0.1" protocol_port = 80 weight = 100 attributes = { :admin_state_up => true, :tenant_id => 'tenant_id' } @lb_member = network.create_lb_member(pool_id, address, protocol_port, weight, attributes).body @lb_member_id = @lb_member["member"]["id"] end it "#create_lb_member" do @lb_member.must_match_schema('member' => @lb_member_format) end it "#list_lb_members" do network.list_lb_members.body.must_match_schema('members' => [@lb_member_format]) end it "#get_lb_member" do lb_member_id = network.lb_members.all.first.id network.get_lb_member(lb_member_id).body. must_match_schema('member' => @lb_member_format) end it "#update_lb_member" do lb_member_id = network.lb_members.all.first.id attributes = { :pool_id => "new_pool_id", :weight => 50, :admin_state_up => false } network.update_lb_member(lb_member_id, attributes).body. must_match_schema('member' => @lb_member_format) end it "#delete_lb_member" do lb_member_id = network.lb_members.all.first.id network.delete_lb_member(lb_member_id).status.must_equal 204 end end describe "failure" do it "#get_lb_member" do proc do network.get_lb_member(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_lb_member" do proc do network.update_lb_member(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_lb_member" do proc do network.delete_lb_member(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/lb_pool_tests.rb000066400000000000000000000057121476630434000240120ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | lb_pool requests" do before do @lb_pool_format = { 'id' => String, 'subnet_id' => String, 'protocol' => String, 'lb_method' => String, 'name' => String, 'description' => String, 'health_monitors' => Array, 'members' => Array, 'status' => String, 'admin_state_up' => Fog::Boolean, 'vip_id' => Fog::Nullable::String, 'tenant_id' => String, 'active_connections' => Fog::Nullable::Integer, 'bytes_in' => Fog::Nullable::Integer, 'bytes_out' => Fog::Nullable::Integer, 'total_connections' => Fog::Nullable::Integer } @lb_pool_stats_format = { 'active_connections' => Integer, 'bytes_in' => Integer, 'bytes_out' => Integer, 'total_connections' => Integer } end describe "success" do before do subnet_id = 'subnet_id' protocol = 'HTTP' lb_method = 'ROUND_ROBIN' attributes = { :name => 'test-pool', :description => 'Test Pool', :admin_state_up => true, :tenant_id => 'tenant_id' } @lb_pool = network.create_lb_pool(subnet_id, protocol, lb_method, attributes).body end it "#create_lb_pool" do @lb_pool.must_match_schema('pool' => @lb_pool_format) end it "#list_lb_pools" do network.list_lb_pools.body. must_match_schema('pools' => [@lb_pool_format]) end it "#get_lb_pool" do lb_pool_id = network.lb_pools.all.first.id network.get_lb_pool(lb_pool_id).body. must_match_schema('pool' => @lb_pool_format) end it "#get_lb_pool_stats" do lb_pool_id = network.lb_pools.all.first.id network.get_lb_pool_stats(lb_pool_id).body. must_match_schema('stats' => @lb_pool_stats_format) end it "#update_lb_pool" do lb_pool_id = network.lb_pools.all.first.id attributes = { :name => 'new-test-pool', :description => 'New Test Pool', :lb_method => 'LEAST_CONNECTIONS', :admin_state_up => false } network.update_lb_pool(lb_pool_id, attributes).body. must_match_schema('pool' => @lb_pool_format) end it "#delete_lb_pool" do lb_pool_id = network.lb_pools.all.first.id network.delete_lb_pool(lb_pool_id).status.must_equal 204 end end describe "failure" do it "#get_lb_pool" do proc do network.get_lb_pool(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_lb_pool" do proc do network.update_lb_pool(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_lb_pool" do proc do network.delete_lb_pool(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/lb_vip_tests.rb000066400000000000000000000054061476630434000236370ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | lb_vip requests" do describe "success" do before do @lb_vip_format = { 'id' => String, 'subnet_id' => String, 'pool_id' => String, 'protocol' => String, 'protocol_port' => Integer, 'name' => String, 'description' => String, 'address' => String, 'port_id' => String, 'session_persistence' => Hash, 'connection_limit' => Integer, 'status' => String, 'admin_state_up' => Fog::Boolean, 'tenant_id' => String } subnet_id = "subnet_id" pool_id = "pool_id" protocol = 'HTTP' protocol_port = 80 attributes = { :name => 'test-vip', :description => 'Test VIP', :address => '10.0.0.1', :connection_limit => 10, :session_persistence => {"cookie_name" => "COOKIE_NAME", "type" => "APP_COOKIE"}, :admin_state_up => true, :tenant_id => 'tenant_id' } @lb_vip = network.create_lb_vip(subnet_id, pool_id, protocol, protocol_port, attributes).body @lb_vip_id = @lb_vip["vip"]["id"] end it "#create_lb_vip" do @lb_vip.must_match_schema('vip' => @lb_vip_format) end it "#list_lb_vips" do network.list_lb_vips.body.must_match_schema('vips' => [@lb_vip_format]) end it "#get_lb_vip" do lb_vip_id = network.lb_vips.all.first.id network.get_lb_vip(lb_vip_id).body. must_match_schema('vip' => @lb_vip_format) end it "#update_lb_vip" do lb_vip_id = network.lb_vips.all.first.id attributes = { :pool_id => "new_pool_id", :name => "new-test-vip", :description => "New Test VIP", :connection_limit => 5, :session_persistence => {"type" => "HTTP_COOKIE"}, :admin_state_up => false } network.update_lb_vip(lb_vip_id, attributes).body. must_match_schema('vip' => @lb_vip_format) end it "#delete_lb_vip" do lb_vip_id = network.lb_vips.all.first.id network.delete_lb_vip(lb_vip_id).status.must_equal 204 end end describe "failure" do it "#get_lb_vip" do proc do network.get_lb_vip(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_lb_vip" do proc do network.update_lb_vip(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_lb_vip" do proc do network.delete_lb_vip(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/network_tests.rb000066400000000000000000000110731476630434000240520ustar00rootroot00000000000000require 'test_helper' require 'helpers/network_helper.rb' describe "Fog::OpenStack::Network | network requests" do describe "success" do let(:network_format) do { "id" => String, "subnets" => Array, "status" => String, "name" => String, "shared" => Fog::Boolean, "admin_state_up" => Fog::Boolean, "qos_policy_id" => Fog::Nullable::String, "port_security_enabled" => Fog::Boolean, "tenant_id" => String, } end let(:network_extentions_format) do { "router:external" => Fog::Boolean, "provider:network_type" => String, "provider:physical_network" => Fog::Nullable::String, "provider:segmentation_id" => Integer, } end let(:created_network) do attributes = { :name => "net_name1", :shared => false, :admin_state_up => true, :tenant_id => "tenant_id", :qos_policy_id => "qos_policy_id1", :port_security_enabled => false } network.create_network(attributes).body end before do created_network end it "#create_network" do created_network.must_match_schema("network" => network_format) end it "#create_network+provider extensions" do attributes = { :name => "net_name2", :shared => false, :admin_state_up => true, :tenant_id => "tenant_id", :qos_policy_id => "qos_policy_id1", :port_security_enabled => false, # local, gre, vlan. Depends on the provider. # May rise an exception if the network_type isn"t valid: # QuantumError: "Invalid input for operation: provider:physical_network" :provider_network_type => "gre", :provider_segmentation_id => 22, :router_external => true, } network.create_network(attributes).body. must_match_schema('network' => network_format.merge(network_extentions_format)) end it "#list_networks" do network.list_networks.body. must_match_schema('networks' => [network_format]) end it "#get_network" do network_id = created_network["network"]["id"] network.get_network(network_id).body. must_match_schema('network' => network_format) end it "#update_network" do attributes = { :name => 'net_name', :shared => false, :admin_state_up => true, :qos_policy_id => 'new_policy_id', :port_security_enabled => true, :router_external => false } network_id = network.networks.all.first.id network_update_extentions_format = {"router:external" => Fog::Boolean} network.update_network(network_id, attributes).body. must_match_schema('network' => network_format.merge(network_update_extentions_format)) end it "#delete_network" do network_id = network.networks.all.first.id network.delete_network(network_id).status.must_equal 204 end end describe "failure" do it "#create_network+provider extensions" do unless Fog.mocking? proc do attributes = { :name => 'net_name', :shared => false, :admin_state_up => true, :tenant_id => 'tenant_id', :router_external => true, # local, gre, vlan. Depends on the provider. # May rise an exception if the network_type isn't valid: # QuantumError: "Invalid input for operation: provider:physical_network" :provider_network_type => 'foobar', :provider_segmentation_id => 22, } network.create_network(attributes) end.must_raise Excon::Errors::BadRequest end end it "#get_network" do proc do network.get_network(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_network" do proc do network.update_network(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_network" do proc do network.delete_network(0) end.must_raise Fog::OpenStack::Network::NotFound end end after do network.networks.each do |n| network.delete_network(n.id) end end end fog-openstack-1.1.5/test/requests/network/port_tests.rb000066400000000000000000000050621476630434000233460ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | port requests" do before do @port_format = { 'id' => String, 'name' => String, 'network_id' => String, 'fixed_ips' => Array, 'mac_address' => String, 'status' => String, 'admin_state_up' => Fog::Boolean, 'device_owner' => String, 'device_id' => String, 'tenant_id' => String, 'security_groups' => Array, 'allowed_address_pairs' => Array } end describe "success" do before do network_id = 'net_id' attributes = { :name => 'port_name', :fixed_ips => [], :mac_address => 'fa:16:3e:62:91:7f', :admin_state_up => true, :device_owner => 'device_owner', :device_id => 'device_id', :tenant_id => 'tenant_id', :security_groups => [], :allowed_address_pairs => [] } @port = network.create_port(network_id, attributes).body end it "#create_port" do @port.must_match_schema('port' => @port_format) end it "#list_port" do # Breaks because sometimes "security_groups" => nil skip unless Minitest::Test::UNIT_TESTS_CLEAN network.list_ports.body.must_match_schema('ports' => [@port_format]) end it "#get_port" do port_id = network.ports.all.first.id network.get_port(port_id).body.must_match_schema('port' => @port_format) end it "#update_port" do port_id = network.ports.all.first.id attributes = { :name => 'port_name', :fixed_ips => [], :admin_state_up => true, :device_owner => 'device_owner', :device_id => 'device_id' } network.update_port(port_id, attributes).body. must_match_schema('port' => @port_format) end it "#delete_port" do port_id = network.ports.all.first.id network.delete_port(port_id).status.must_equal 204 end end describe "failure" do it "#get_port" do proc do network.get_port(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_port" do proc do network.update_port(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_port" do proc do network.delete_port(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/quota_tests.rb000066400000000000000000000031751476630434000235160ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | quota requests" do before do identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant_id = identity.list_tenants.body['tenants'].first['id'] @quota_format = { 'subnet' => Fog::Nullable::Integer, 'router' => Fog::Nullable::Integer, 'port' => Fog::Nullable::Integer, 'network' => Fog::Nullable::Integer, 'floatingip' => Fog::Nullable::Integer } @quotas_format = [ { 'subnet' => Fog::Nullable::Integer, 'router' => Fog::Nullable::Integer, 'port' => Fog::Nullable::Integer, 'network' => Fog::Nullable::Integer, 'floatingip' => Fog::Nullable::Integer, 'tenant_id' => Fog::Nullable::String } ] @quota = network.get_quota(@tenant_id).body['quota'] end describe "success" do it "#get_quotas" do network.get_quotas.body.must_match_schema('quotas' => @quotas_format) end it "#get_quota" do @quota.must_match_schema(@quota_format) end it "#update_quota" do new_values = @quota.merge( 'volumes' => @quota['subnet'] / 2, 'snapshots' => @quota['router'] / 2 ) network.update_quota(@tenant_id, new_values.clone) network.get_quota(@tenant_id).body['quota'].must_equal new_values network.update_quota(@tenant_id, @quota.clone) network.get_quota(@tenant_id).body['quota'].must_equal @quota end end describe "#delete_quota" do it "succeeds" do network.delete_quota(@tenant_id).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/network/router_tests.rb000066400000000000000000000045541476630434000237070ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | router requests" do before do @router_format = { :id => String, :name => String, :status => String, :admin_state_up => Fog::Boolean, :tenant_id => String, :external_gateway_info => Fog::Nullable::Hash } end describe "success" do before do attributes = { :admin_state_up => true, :tenant_id => 'tenant_id' } @router = network.create_router('router_name', attributes).body end it "#create_router" do @router.must_match_schema('router' => @router_format) end it "#list_routers" do network.list_routers.body.must_match_schema('routers' => [@router_format]) end it "#get_router" do router_id = network.routers.all.first.id network.get_router(router_id).body.must_match_schema('router' => @router_format) end it "#update_router" do router_id = network.routers.all.first.id attributes = { :name => 'net_name', :external_gateway_info => {:network_id => 'net_id'}, :status => 'ACTIVE', :admin_state_up => true } network.update_router(router_id, attributes).body.must_match_schema('router' => @router_format) end it "#update_router_with_network" do router_id = network.routers.all.first.id net = network.networks.first attributes = { :name => 'net_name', :external_gateway_info => net, :status => 'ACTIVE', :admin_state_up => true } network.update_router(router_id, attributes).body.must_match_schema('router' => @router_format) end it "#delete_router" do router_id = network.routers.all.last.id network.delete_router(router_id).status.must_equal 204 end end describe "failure" do it "#get_router" do proc do network.get_router(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_router" do proc do network.update_router(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_router" do proc do network.delete_router(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/security_group_rule_tests.rb000066400000000000000000000044621476630434000264770ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | security_grouprule requests" do before do @security_group_rule_format = { "id" => String, "remote_group_id" => Fog::Nullable::String, "direction" => String, "remote_ip_prefix" => Fog::Nullable::String, "protocol" => Fog::Nullable::String, "ethertype" => String, "port_range_max" => Fog::Nullable::Integer, "port_range_min" => Fog::Nullable::Integer, "security_group_id" => String, "tenant_id" => String } end describe "success" do before do attributes = {:name => "my_security_group", :description => "tests group"} security_group = network.create_security_group(attributes).body["security_group"] @sec_group_id = security_group["id"] @sec_group_rule_id = nil attributes = { :remote_ip_prefix => "0.0.0.0/0", :protocol => "tcp", :port_range_min => 22, :port_range_max => 22 } @security_group_rule = network.create_security_group_rule( @sec_group_id, 'ingress', attributes ).body["security_group_rule"] @sec_group_rule_id = @security_group_rule["id"] end it "#create_security_group_rule(@sec_group_id, 'ingress', attributes)" do @security_group_rule.must_match_schema(@security_group_rule_format) end it "#get_security_group_rule(@sec_group_rule_id)" do network.get_security_group_rule(@sec_group_rule_id). body["security_group_rule"].must_match_schema(@security_group_rule_format) end it "#list_security_group_rules" do network.list_security_group_rules.body.must_match_schema( "security_group_rules" => [@security_group_rule_format] ) end it "#delete_security_group_rule(@sec_group_rule_id)" do network.delete_security_group_rule(@sec_group_rule_id).status.must_equal 204 end end describe "failure" do it "#get_security_group_rule(0)" do proc do network.get_security_group_rule(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_security_group_rule(0)" do proc do network.delete_security_group_rule(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/security_group_tests.rb000066400000000000000000000040731476630434000254460ustar00rootroot00000000000000require 'test_helper' require 'helpers/network_helper' describe "Fog::OpenStack::Network | security_group requests" do before do @security_group_format = { "id" => String, "name" => String, "description" => String, "tenant_id" => String, "security_group_rules" => [Hash] } end describe "success" do before do @sec_group_id = nil attributes = {:name => "fog_security_group", :description => "tests group"} @security_group = network.create_security_group(attributes).body["security_group"] @sec_group_id = @security_group["id"] end it "#create_security_group('fog_security_group', 'tests group')" do @security_group.must_match_schema(@security_group_format) end it "#get_security_group('#{@sec_group_id}')" do network.get_security_group(@sec_group_id).body["security_group"]. must_match_schema(@security_group_format) end it "#list_security_groups" do network.list_security_groups.body. must_match_schema('security_groups' => [@security_group_format]) end it "#update_security_group" do security_group_id = network.security_groups.all.first.id attributes = { :name => "new_security_group_name", :description => "New sg desc", } updated = network.update_security_group(security_group_id, attributes) updated.body.must_match_schema("security_group" => @security_group_format) updated.body["security_group"]["name"].must_equal "new_security_group_name" end it "#delete_security_group('#{@sec_group_id}')" do network.delete_security_group(@sec_group_id).status.must_equal 204 end end describe "failure" do it "#get_security_group(0)" do proc do network.get_security_group(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_security_group(0)" do proc do network.delete_security_group(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/subnet_pool_tests.rb000066400000000000000000000044201476630434000247100ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | subnet_pool requests" do before do @subnet_pool_format = { 'id' => String, 'name' => String, 'prefixes' => Array, 'description' => Fog::Nullable::String, 'address_scope_id' => Fog::Nullable::String, 'shared' => Fog::Boolean, 'ip_version' => Integer, 'min_prefixlen' => Integer, 'max_prefixlen' => Integer, 'default_prefixlen' => Integer, 'is_default' => Fog::Boolean, 'default_quota' => Fog::Nullable::String, 'created_at' => String, 'updated_at' => String, 'tenant_id' => String } end describe "success" do before do name = 'subnet_pool_name' prefixes = ['10.0.0.0/18'] @subnet_pool = network.create_subnet_pool(name, prefixes).body end it "#create_subnet_pool" do @subnet_pool.must_match_schema('subnetpool' => @subnet_pool_format) end it "#list_subnet_pool" do network.list_subnet_pools.body.must_match_schema('subnetpools' => [@subnet_pool_format]) end it "#get_subnet_pool" do subnet_pool_id = network.subnet_pools.all.first.id network.get_subnet_pool(subnet_pool_id).body.must_match_schema('subnetpool' => @subnet_pool_format) end it "#update_subnet_pool" do subnet_pool_id = network.subnet_pools.all.first.id attributes = { :name => 'new_subnet_pool_name' } network.update_subnet_pool(subnet_pool_id, attributes).body.must_match_schema('subnetpool' => @subnet_pool_format) end it "#delete_subnet_pool" do subnet_pool_id = network.subnet_pools.all.first.id network.delete_subnet_pool(subnet_pool_id).status.must_equal 204 end end describe "failure" do it "#get_subnet_pool" do proc do network.get_subnet_pool(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_subnet_pool" do proc do network.update_subnet_pool(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_subnet_pool" do proc do network.delete_subnet_pool(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/subnet_tests.rb000066400000000000000000000045741476630434000236710ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | subnet requests" do before do @subnet_format = { 'id' => String, 'name' => String, 'network_id' => String, 'cidr' => String, 'ip_version' => Integer, 'gateway_ip' => String, 'allocation_pools' => Array, 'dns_nameservers' => Array, 'host_routes' => Array, 'enable_dhcp' => Fog::Boolean, 'tenant_id' => String } end describe "success" do before do network_id = 'net_id' cidr = '10.2.2.0/24' ip_version = 4 attributes = { :name => 'subnet_name', :gateway_ip => '10.2.2.1', :allocation_pools => [], :dns_nameservers => [], :host_routes => [], :enable_dhcp => true, :tenant_id => 'tenant_id' } @subnet = network.create_subnet(network_id, cidr, ip_version, attributes).body end it "#create_subnet" do @subnet.must_match_schema('subnet' => @subnet_format) end it "#list_subnet" do network.list_subnets.body.must_match_schema('subnets' => [@subnet_format]) end it "#get_subnet" do subnet_id = network.subnets.all.first.id network.get_subnet(subnet_id).body.must_match_schema('subnet' => @subnet_format) end it "#update_subnet" do subnet_id = network.subnets.all.first.id attributes = { :name => 'subnet_name', :gateway_ip => '10.2.2.1', :allocation_pools => [], :dns_nameservers => [], :host_routes => [], :enable_dhcp => true } network.update_subnet(subnet_id, attributes).body.must_match_schema('subnet' => @subnet_format) end it "#delete_subnet" do subnet_id = network.subnets.all.first.id network.delete_subnet(subnet_id).status.must_equal 204 end end describe "failure" do it "#get_subnet" do proc do network.get_subnet(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_subnet" do proc do network.update_subnet(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_subnet" do proc do network.delete_subnet(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/network/vpn_service_tests.rb000066400000000000000000000046471476630434000247150ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Network | vpn_service requests" do before do @vpn_service_format = { 'id' => String, 'subnet_id' => String, 'router_id' => String, 'name' => String, 'description' => String, 'status' => String, 'admin_state_up' => Fog::Boolean, 'tenant_id' => String, 'external_v4_ip' => String, 'external_v6_ip' => String } end describe "success" do before do subnet_id = 'subnet_id' router_id = 'router_id' attributes = { :name => 'test-vpn-service', :description => 'Test VPN Service', :admin_state_up => true, :tenant_id => 'tenant_id' } @vpn_service = network.create_vpn_service(subnet_id, router_id, attributes).body end it "#create_vpn_service" do @vpn_service.must_match_schema('vpnservice' => @vpn_service_format) end it "#list_vpn_services" do network.list_vpn_services.body.must_match_schema('vpnservices' => [@vpn_service_format]) end it "#get_vpn_service" do vpn_service_id = network.vpn_services.all.first.id network.get_vpn_service(vpn_service_id).body.must_match_schema('vpnservice' => @vpn_service_format) end it "#update_vpn_service" do vpn_service_id = network.vpn_services.all.first.id attributes = { :name => 'renamed-test-vpn-service', :description => 'Test VPN Service', :admin_state_up => true, :tenant_id => 'tenant_id', :subnet_id => 'subnet_id', :router_id => 'router_id' } network.update_vpn_service(vpn_service_id, attributes).body.must_match_schema('vpnservice' => @vpn_service_format) end it "#delete_vpn_service" do vpn_servcice_id = network.vpn_services.all.first.id network.delete_vpn_service(vpn_servcice_id).status.must_equal 204 end end describe "failure" do it "#get_vpn_service" do proc do network.get_vpn_service(0) end.must_raise Fog::OpenStack::Network::NotFound end it "#update_lb_pool" do proc do network.update_lb_pool(0, {}) end.must_raise Fog::OpenStack::Network::NotFound end it "#delete_vpn_service" do proc do network.delete_vpn_service(0) end.must_raise Fog::OpenStack::Network::NotFound end end end fog-openstack-1.1.5/test/requests/nfv/000077500000000000000000000000001476630434000177105ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/nfv/vnf_tests.rb000066400000000000000000000037011476630434000222510ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "@vnf | NFV vnfs requests" do before do @vnfs_create = { "status" => String, "description" => String, "tenant_id" => String, "name" => String, "instance_id" => String, "mgmt_url" => Fog::Nullable::String, "attributes" => Hash, "id" => String, "vnfd_id" => String } @vnfs = { "status" => String, "description" => String, "tenant_id" => String, "name" => String, "instance_id" => String, "mgmt_url" => Fog::Nullable::String, "attributes" => Hash, "id" => String } @nfv, @vnf_data, @auth = set_nfv_data @vnfd_body = @nfv.create_vnfd(:vnfd => @vnfd_data, :auth => @auth).body vnf_data = {:vnfd_id => @vnfd_body["vnfd"]["id"], :name => 'Test'} @vnf_body = @nfv.create_vnf(:vnf => vnf_data, :auth => @auth).body @nfv.vnfs.get(@vnf_body["vnf"]["id"]).wait_for { ready? } end describe "success" do it "#create_vnfs" do @vnf_body.must_match_schema('vnf' => @vnfs_create) end it "#list_vnfs" do @nfv.list_vnfs.body.must_match_schema('vnfs' => [@vnfs]) end it "#get_vnfs" do @nfv.get_vnf(@vnf_body["vnf"]["id"]).body.must_match_schema('vnf' => @vnfs) end describe "inter2" do it "#update_vnfs" do vnf_data = {:attributes => {:config => "vdus:\n vdu1: \n\n"}} auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin", "password" => "password"}} @nfv.update_vnf(@vnf_body["vnf"]["id"], :vnf => vnf_data, :auth => auth).body.must_match_schema('vnf' => @vnfs) end it "#delete_vnfs" do sleep(10) unless Fog.mocking? @nfv.delete_vnf(@vnf_body["vnf"]["id"]).status.must_equal 204 @nfv.delete_vnfd(@vnfd_body["vnfd"]["id"]).status.must_equal 204 end end end end fog-openstack-1.1.5/test/requests/nfv/vnfd_tests.rb000066400000000000000000000016741476630434000224240ustar00rootroot00000000000000require "test_helper" require "helpers/nfv_helper" describe "@vnfd | NFV vnfds requests" do before do @vnfds = { "service_types" => Array, "description" => String, "tenant_id" => String, "mgmt_driver" => String, "infra_driver" => String, "attributes" => Hash, "id" => String, "name" => String } @nfv, @vnf_data, @auth = set_nfv_data @vnfd_body = @nfv.create_vnfd(:vnfd => @vnfd_data, :auth => @auth).body end describe "success" do it "#create_vnfds" do @vnfd_body.must_match_schema('vnfd' => @vnfds) end it "#list_vnfds" do @nfv.list_vnfds.body.must_match_schema('vnfds' => [@vnfds]) end it "#get_vnfds" do @nfv.get_vnfd(@vnfd_body["vnfd"]["id"]).body.must_match_schema('vnfd' => @vnfds) end it "#delete_vnfds" do @nfv.delete_vnfd(@vnfd_body["vnfd"]["id"]).status.must_equal 204 end end end fog-openstack-1.1.5/test/requests/orchestration/000077500000000000000000000000001476630434000220035ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/orchestration/foo.sh000066400000000000000000000000151476630434000231160ustar00rootroot00000000000000# Just a mockfog-openstack-1.1.5/test/requests/orchestration/hot_1.yaml000066400000000000000000000002501476630434000236760ustar00rootroot00000000000000heat_template_version: "2014-10-16" resources: a_file: type: OS::Heat::SoftwareConfig properties: group: script config: {get_file: "local.yaml"} fog-openstack-1.1.5/test/requests/orchestration/hot_2.yaml000066400000000000000000000002441476630434000237020ustar00rootroot00000000000000heat_template_version: "2014-10-16" resources: a_file: type: OS::Heat::SoftwareConfig properties: group: script config: {get_file: "foo.sh"} fog-openstack-1.1.5/test/requests/orchestration/local.yaml000066400000000000000000000001111476630434000237520ustar00rootroot00000000000000heat_template_version: newton resources: a_file: type: hot_1.yaml fog-openstack-1.1.5/test/requests/orchestration/local_fullpath.yaml000066400000000000000000000005661476630434000256670ustar00rootroot00000000000000heat_template_version: newton resources: no_recursion: type: local_fullpath.yaml recurse_yaml_template: type: local.yaml add_yaml_file: get_file: "file:///home/travis/build/fog/fog-openstack/test/requests/orchestration/local.yaml" recurse_yaml_template_too: type: "file:///home/travis/build/fog/fog-openstack/test/requests/orchestration/local.yaml" fog-openstack-1.1.5/test/requests/orchestration/no_recursion.yaml000066400000000000000000000003351476630434000253750ustar00rootroot00000000000000heat_template_version: newton resources: self: type: "no_recursion.yaml" self_file: get_file: "no_recursion.yaml" yaml_file: get_file: "no_recursion.yaml" yaml_template: type: "no_recursion.yaml" fog-openstack-1.1.5/test/requests/orchestration/simple.yaml000066400000000000000000000001111476630434000241510ustar00rootroot00000000000000heat_template_version: newton resources: a_file: type: hot_2.yaml fog-openstack-1.1.5/test/requests/orchestration/stack_files_util_helper_tests.rb000066400000000000000000000045031476630434000304370ustar00rootroot00000000000000require "test_helper" require "yaml" require "open-uri" describe "Fog::OpenStack::Orchestration | stack requests" do @create_format_files = { 'id' => String, 'links' => Array, 'files' => Hash } before do @oldcwd = Dir.pwd Dir.chdir("test/requests/orchestration") @base_url = "file://" + File.absolute_path(".") @data = YAML.load_file("stack_files_util_tests.yaml") @template_yaml = YAML.load_file("template.yaml") @local_yaml = YAML.load_file("local.yaml") @orchestration = Fog::OpenStack::Orchestration.new @file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new({}) end after do Dir.chdir(@oldcwd) end describe "success" do it "#template_file_is_file" do assert(@file_resolver.send(:template_is_raw?, YAML.dump(@template_yaml)), true) assert(@file_resolver.send(:template_is_url?, "local.yaml")) refute(@file_resolver.send(:template_is_url?, YAML.dump(@template_yaml))) refute(@file_resolver.send(:template_is_url?, @template_yaml)) end it "#read_uri_local" do content = @file_resolver.send(:read_uri, "template.yaml") assert_includes(content, "heat_template_version") end it "#read_uri_remote" do unless Fog.mocking? content = @file_resolver.send(:read_uri, "https://www.google.com/robots.txt") assert_includes(content, "Disallow:") end end it "#read_uri_404" do unless Fog.mocking? assert_raises OpenURI::HTTPError do @file_resolver.send(:read_uri, "https://www.google.com/NOOP") end end end it "#read_uri_bad_uri" do test_cases = %w[ |no_command_execution |neither;\nhttp://localhost http:/../../../../../etc/passwd ] test_cases.each do |uri| assert_raises ArgumentError do @file_resolver.send(:read_uri, uri) end end end it "#base_url_for_url" do test_cases = [ %w(file:///f.txt file:///), %w(file:///a/f.txt file:///a), %w(file:///a/b/f.txt file:///a/b), %w(http://h.com/a/f.txt http://h.com/a), %w(https://h.com/a/b/f.txt https://h.com/a/b), ] test_cases.each do |data, expected| assert_equal(@file_resolver.send(:base_url_for_url, data).to_s, expected) end end end end fog-openstack-1.1.5/test/requests/orchestration/stack_files_util_tests.rb000066400000000000000000000104501476630434000270760ustar00rootroot00000000000000require "test_helper" require "yaml" require "open-uri" def travis? File.exist?('/home/travis/build/fog/fog-openstack') end describe "Fog::OpenStack::Orchestration | stack requests" do @create_format_files = { 'id' => String, 'links' => Array, 'files' => Hash } before do @oldcwd = Dir.pwd Dir.chdir("test/requests/orchestration") @base_url = "file://" + File.absolute_path(".") @data = YAML.load_file("stack_files_util_tests.yaml") @template_yaml = YAML.load_file("template.yaml") @local_yaml = YAML.load_file("local.yaml") @orchestration = Fog::OpenStack::Orchestration.new @file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new({}) end after do Dir.chdir(@oldcwd) end describe "success" do it "#get_file_contents_simple" do test_cases = [ ["a string", {}], [["a", "list"], {}], [{"a" => "dict", "b" => "values"}, {}], [{"type"=>"OS::Nova::Server"}, {}], [{"get_file" => "foo.sh", "b" => "values"}, {'foo.sh'=>'# Just a mock'}], ] test_cases.each do |data, expected| file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new({}) file_resolver.send(:get_file_contents, data, nil) assert_equal(file_resolver.files, expected) end end it "#get_file_contents_local_template" do skip unless travis? # Heat files parameter is populated with URI-like syntax. The expected # values are absolute paths uri and should be resolved with the local # directory. test_cases = @data['get_file_contents_local_template'].map do |testcase| [testcase['input'], testcase['expected']] end.compact test_cases.each do |data, expected| Fog::Logger.warning("Testing with #{data} #{expected}") expected = prefix_with_url(expected, @base_url) file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new({}) file_resolver.send(:get_file_contents, data, @base_url) assert_equal(file_resolver.files.keys, expected) end end it "#get_file_contents_invalid" do test_cases = @data["get_files_invalid"].map do |testcase| [testcase['input'], testcase['expected']] end.compact test_cases.each do |data, _| assert_raises ArgumentError, URI::InvalidURIError do Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new(data) end end end it "#get_file_contents_http_template" do unless Fog.mocking? test_cases = @data["get_file_contents_http_template"].map do |testcase| [testcase['input'], testcase['expected']] end.compact test_cases.each do |data, expected| file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new(data) assert_equal_set(file_resolver.files.keys, expected) end end end it "#recurse_template_and_file" do skip unless travis? test_cases = @data["get_file_contents_local_template"].map do |testcase| [testcase['input'], testcase['expected']] end.compact test_cases.push([@local_yaml, ["local.yaml", "hot_1.yaml"]]) test_cases.each do |data, expected| expected = prefix_with_url(expected, @base_url) file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new(data) assert_equal_set(file_resolver.files.keys, expected) end end it "#dont_modify_passed_template" do file_resolver = Fog::OpenStack::OrchestrationUtil::RecursiveHotFileLoader.new(@local_yaml) template = file_resolver.template # The template argument should be modified. assert(template['resources']['a_file']['type'].start_with?('file:///'), file_resolver.template) # Nested template argument should be modified. _, hot_1_yaml = file_resolver.files.select { |fpath, _| fpath.end_with?("hot_1.yaml") }.first hot_1_yaml = YAML.safe_load(hot_1_yaml) assert( hot_1_yaml['resources']['a_file']['properties']['config']['get_file'].start_with?('file:///'), hot_1_yaml['resources']['a_file']['properties']['config']['get_file'] ) # No side effect on the original template. refute(@local_yaml['resources']['a_file']['type'].start_with?('file:///')) end end end fog-openstack-1.1.5/test/requests/orchestration/stack_files_util_tests.yaml000066400000000000000000000162331476630434000274420ustar00rootroot00000000000000 get_files_invalid: - input: {"get_file": "|ls"} expected: [] - input: {"get_file": "http:/../../../../../etc/passwd"} expected: [] - input: {"type": "|ls.yaml"} expected: [] get_file_contents_local_template: - input: {"type": "local.yaml"} expected: ["local.yaml", "hot_1.yaml"] - input: {"type": "no_recursion.yaml"} expected: ["no_recursion.yaml"] - input: {"type": "local_fullpath.yaml"} expected: ["local_fullpath.yaml", "local.yaml", "hot_1.yaml"] get_file_contents_http_template: - input: "https://raw.githubusercontent.com/ioggstream/heat-templates/test_fog/hot/fog_1.yaml" expected: - "https://raw.githubusercontent.com/ioggstream/heat-templates/test_fog/hot/fog_2.yaml" - input: type: "https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/openshift.yaml" expected: - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/bastion-boot.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/bastion-node-cleanup.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/roles/reboot/tasks/main.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/ifcfg-eth - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/group_vars/nodes.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/templates/etc/haproxy/router.cfg.j2 - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/update_dns.py - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/set-extra-docker-repos.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/configure_config_agent.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/host_vars/loadbalancer.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/ca_cert.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/merge_dict.py - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/infra-boot.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/group_vars/OSv3.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/add_dns_record.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/haproxy.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/common_openshift_functions.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/scaledown.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/set-extra-repos.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/scaleup.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/openshift.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/flannel.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/node.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/rhn-register.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/retry.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/install_config_agent_centos_yum.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/install_config_agent_yum.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/group_vars/masters.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/node-boot.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/tune-ansible.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/quota.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/master-boot.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/infra.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/roles/xfs_grub_quota/tasks/main.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/bastion.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/master.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/main.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/start_config_agent.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/ipfailover.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/playbooks/registry.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/bastion-ansible.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/common_functions.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/host-update.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/fragments/bastion-node-add.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/roles/fstab_mount_options/tasks/main.yml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/templates/var/lib/ansible/inventory - input: type: >- https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/install_config_agent_centos_yum.yaml expected: - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/configure_config_agent.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/install_config_agent_centos_yum.yaml - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/install_config_agent_yum.sh - https://raw.githubusercontent.com/redhat-openstack/openshift-on-openstack/master/collect-config-setup/fragments/start_config_agent.shfog-openstack-1.1.5/test/requests/orchestration/stack_tests.rb000066400000000000000000000077221476630434000246670ustar00rootroot00000000000000require "test_helper" require 'fog/core' describe "Fog::OpenStack::Orchestration | stack requests" do before do @oldcwd = Dir.pwd Dir.chdir("test/requests/orchestration") @base_url = "file://" + File.absolute_path(".") @orchestration = Fog::OpenStack::Orchestration.new @stack_mock = Fog::OpenStack::Orchestration::Stack.new( :template_name => "stack_mock", :id => "stack_id" ) @stack_format = { 'links' => Array, 'id' => String, 'stack_name' => String, 'description' => Fog::Nullable::String, 'stack_status' => String, 'stack_status_reason' => String, 'creation_time' => Time, 'updated_time' => Time } @stack_detailed_format = { "parent" => Fog::Nullable::String, "disable_rollback" => Fog::Boolean, "description" => String, "links" => Array, "stack_status_reason" => String, "stack_name" => String, "stack_user_project_id" => String, "stack_owner" => String, "creation_time" => Fog::Nullable::String, "capabilities" => Array, "notification_topics" => Array, "updated_time" => Fog::Nullable::String, "timeout_mins" => Fog::Nullable::String, "stack_status" => String, "parameters" => Hash, "id" => String, "outputs" => Array, "template_description" => String } @create_format = { 'id' => String, 'links' => Array, } @create_format_files = { 'id' => String, 'links' => Array, 'files' => Hash } end after do Dir.chdir(@oldcwd) end describe "success" do it "#create_stack" do @stack = @orchestration.create_stack(:stack_name => "teststack").body.must_match_schema(@create_format) end it "#create_stack_with_files" do args = { :stack_name => "teststack_files", :files => {'foo.sh'=>'hello'} } @stack = @orchestration.create_stack(args).body.must_match_schema(@create_format_files) end it "#create_stack_resolve_files" do expected = prefix_with_url(["local.yaml", "hot_1.yaml"], @base_url) args = { :stack_name => "teststack_files", :template => YAML.load_file("local.yaml"), } response = @orchestration.create_stack(args) response.body.must_match_schema(@create_format_files) files = response.body['files'] Fog::Logger.warning("Request processed: #{files.keys}") assert_equal_set(expected, files.keys) end it "#create_stack_merge_files" do expected = prefix_with_url(["local.yaml", "hot_1.yaml", "file.txt"], @base_url) args = { :stack_name => "teststack_files", :template => YAML.load_file("local.yaml"), :files => {expected[-1] => "# just a mock"} } response = @orchestration.create_stack(args) response.body.must_match_schema(@create_format_files) files = response.body['files'] Fog::Logger.warning("Request processed: #{files.keys}") assert_equal_set(expected, files.keys) end it "#list_stack_data" do @orchestration.list_stack_data.body.must_match_schema('stacks' => [@stack_format]) end it "#list_stack_data_Detailed" do @orchestration.list_stack_data_detailed.body.must_match_schema('stacks' => [@stack_detailed_format]) end it "#update_stack" do @orchestration.update_stack(@stack_mock).body.must_match_schema({}) end it "#patch_stack" do @orchestration.patch_stack(@stack_mock).body.must_match_schema({}) end it "#delete_stack" do @orchestration.delete_stack(@stack_mock).body.must_match_schema({}) end it "#cancel_update" do @orchestration.cancel_update(@stack_mock).body.must_match_schema({}) end end end fog-openstack-1.1.5/test/requests/orchestration/template.yaml000066400000000000000000000003151476630434000245010ustar00rootroot00000000000000heat_template_version: newton resources: a_file: type: https://gist.githubusercontent.com/ioggstream/55135a3c886802dedaac833ce4f87bfa/raw/b320d97756da702797d76b85b0a8c630d5589889/case_01891685.yaml fog-openstack-1.1.5/test/requests/planning/000077500000000000000000000000001476630434000207255ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/planning/plan_tests.rb000066400000000000000000000044421476630434000234320ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Planning | Planning plan requests" do before do @plan_format = { "created_at" => Fog::Nullable::String, "description" => Fog::Nullable::String, "name" => String, "parameters" => Fog::Nullable::Array, "roles" => Fog::Nullable::Array, "updated_at" => Fog::Nullable::String, "uuid" => String, "version" => Fog::Nullable::Integer } @plan_templates_format = Hash @plans = Fog::OpenStack::Planning.new.list_plans.body @instance = @plans.first @role_instance = Fog::OpenStack::Planning.new.list_roles.body.first end describe "success" do it "#list_plans" do @plans.must_match_schema([@plan_format]) end it "#get_plan" do Fog::OpenStack::Planning.new.get_plan(@instance['uuid']).body.must_match_schema(@plan_format) end it "#delete_plan" do Fog::OpenStack::Planning.new.delete_plan(@instance['uuid']).status.must_equal 204 end it "#create_plan" do plan_attributes = { :name => 'test-plan-name', :description => 'test-plan-desc', } @instance = Fog::OpenStack::Planning.new.create_plan(plan_attributes).body @instance.must_match_schema(@plan_format) end it "#add_role_to_plan" do Fog::OpenStack::Planning.new.add_role_to_plan( @instance['uuid'], @role_instance['uuid'] ).body.must_match_schema(@plan_format) end it "#patch_plan" do parameters = Fog::OpenStack::Planning.new.get_plan(@instance['uuid']). body['parameters'][0..1] plan_parameters = parameters.collect do |parameter| { "name" => parameter['name'], "value" => "test-#{parameter['name']}-value", } end Fog::OpenStack::Planning.new.patch_plan(@instance['uuid'], plan_parameters).body. must_match_schema(@plan_format) end it "#get_plan_templates" do Fog::OpenStack::Planning.new.get_plan_templates(@instance['uuid']).body. must_match_schema(@plan_templates_format) end it "#remove_role_from_plan" do Fog::OpenStack::Planning.new.remove_role_from_plan( @instance['uuid'], @role_instance['uuid'] ).body.must_match_schema(@plan_format) end end end fog-openstack-1.1.5/test/requests/planning/role_tests.rb000066400000000000000000000006671476630434000234460ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Planning | Planning role requests" do before do @role_format = { 'description' => Fog::Nullable::String, 'name' => Fog::Nullable::String, 'uuid' => String, 'version' => Integer, } end describe "success" do it "#list_roles" do Fog::OpenStack::Planning.new.list_roles.body.must_match_schema([@role_format]) end end end fog-openstack-1.1.5/test/requests/shared_file_system/000077500000000000000000000000001476630434000227705ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/shared_file_system/quota_tests.rb000066400000000000000000000021211476630434000256640ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::SharedFileSystem | quota requests" do before do @manila = Fog::OpenStack::SharedFileSystem.new @project_id = @manila.respond_to?(:current_tenant) ? @manila.current_tenant['id'] : Fog::Mock.random_numbers(6).to_s @quota_format = { "gigabytes" => Integer, "shares" => Integer, "snapshots" => Integer, "snapshot_gigabytes" => Integer, "share_networks" => Integer, "id" => String } @quota = @manila.get_quota(@project_id).body['quota_set'] end describe "success" do it "#get_quota" do @quota.must_match_schema(@quota_format) end it "#update_quota" do new_values = @quota.merge( 'shares' => @quota['shares'] + 1, 'snapshots' => @quota['snapshots'] + 2 ) @manila.update_quota(@project_id, new_values.clone).status.must_equal 200 @manila.get_quota(@project_id).body['quota_set'].must_equal new_values # turn back @manila.update_quota(@project_id, @quota) end end end fog-openstack-1.1.5/test/requests/storage/000077500000000000000000000000001476630434000205635ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/storage/container_tests.rb000066400000000000000000000053051476630434000243170ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Storage | container requests" do def cleanup_container return if Fog.mocking? if @storage.head_container(@container_name) @storage.delete_container(@container_name) end rescue Fog::OpenStack::Storage::NotFound end before do @storage = Fog::OpenStack::Storage.new @container_format = [String] @container_name = 'fogcontainertests' cleanup_container @containers_format = [{ 'bytes' => Integer, 'count' => Integer, 'name' => String }] end after do cleanup_container end describe "success" do it "#put_container('fogcontainertests')" do unless Fog.mocking? @storage.put_container('fogcontainertests').status.must_equal 201 end end describe "using container" do before do unless Fog.mocking? @storage.put_container(@container_name).status.must_equal 201 end end after do cleanup_container end it "#get_container('fogcontainertests')" do unless Fog.mocking? @storage.get_container('fogcontainertests').body.must_match_schema(@container_format) end end it "#get_containers" do unless Fog.mocking? @storage.get_containers.body.must_match_schema(@containers_format) end end it "#head_container('fogcontainertests')" do unless Fog.mocking? resp = @storage.head_container('fogcontainertests') resp.status.must_equal 204 resp.headers['X-Container-Object-Count'].to_i.must_equal 0 end end it "#head_containers" do unless Fog.mocking? resp = @storage.head_containers resp.status.must_equal 204 resp.headers['X-Account-Container-Count'].to_i.must_equal 1 end end it "#delete_container('fogcontainertests')" do unless Fog.mocking? @storage.delete_container('fogcontainertests').status.must_equal 204 end end end end describe "failure" do it "#get_container('fognoncontainer')" do unless Fog.mocking? proc do @storage.get_container('fognoncontainer') end.must_raise Fog::OpenStack::Storage::NotFound end end it "#head_container('fognoncontainer')" do unless Fog.mocking? proc do @storage.head_container('fognoncontainer') end.must_raise Fog::OpenStack::Storage::NotFound end end it "#delete_container('fognoncontainer')" do unless Fog.mocking? proc do @storage.delete_container('fognoncontainer') end.must_raise Fog::OpenStack::Storage::NotFound end end end end fog-openstack-1.1.5/test/requests/storage/large_object_tests.rb000066400000000000000000000362311476630434000247570ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Storage | large object requests" do before do @storage = Fog::OpenStack::Storage.new unless Fog.mocking? @directory = @storage.directories.create(:key => 'foglargeobjecttests') @directory2 = @storage.directories.create(:key => 'foglargeobjecttests2') @segments = { :a => { :container => @directory.identity, :name => 'fog_large_object/a', :data => 'a' * (1024**2 + 10), :size => 1024**2 + 10, :etag => 'c2e97007d59f0c19b850debdcb80cca5' }, :b => { :container => @directory.identity, :name => 'fog_large_object/b', :data => 'b' * (1024**2 + 20), :size => 1024**2 + 20, :etag => 'd35f50622a1259daad75ff7d5512c7ef' }, :c => { :container => @directory.identity, :name => 'fog_large_object2/a', :data => 'c' * (1024**2 + 30), :size => 1024**2 + 30, :etag => '901d3531a87d188041d4d5b43cb464c1' }, :d => { :container => @directory2.identity, :name => 'fog_large_object2/b', :data => 'd' * (1024**2 + 40), :size => 1024**2 + 40, :etag => '350c0e00525198813920a157df185c8d' } } end end after do unless Fog.mocking? @directory.files.each(&:destroy) @directory.destroy @directory2.files.each(&:destroy) @directory2.destroy end end describe "success" do before do unless Fog.mocking? @segments.each_value do |segment| @storage.put_object(segment[:container], segment[:name], segment[:data]) end end end describe "dynamic large object requests" do it "#put_object_manifest alias" do unless Fog.mocking? @storage.put_object_manifest(@directory.identity, 'fog_large_object') end end describe "using default X-Object-Manifest header" do it "#put_dynamic_obj_manifest" do unless Fog.mocking? @storage.put_dynamic_obj_manifest(@directory.identity, 'fog_large_object') end end describe "with large object" do before do unless Fog.mocking? @segments.each_value do |segment| @storage.put_object(segment[:container], segment[:name], segment[:data]) end @storage.put_dynamic_obj_manifest(@directory.identity, 'fog_large_object') end end it "#get_object streams all segments matching the default prefix" do unless Fog.mocking? expected = @segments[:a][:data] + @segments[:b][:data] + @segments[:c][:data] @storage.get_object(@directory.identity, 'fog_large_object').body.must_equal expected end end # When the manifest object name is equal to the segment prefix, # OpenStack treats it as if it's the first segment. # So you must prepend the manifest object's Etag - Digest::MD5.hexdigest('') it "#head_object returns Etag that includes manifest object in calculation" do unless Fog.mocking? etags = [ 'd41d8cd98f00b204e9800998ecf8427e', @segments[:a][:etag], @segments[:b][:etag], @segments[:c][:etag] ] # returned in quotes "\"2577f38428e895c50de6ea78ccc7da2a"\" expected = %("#{Digest::MD5.hexdigest(etags.join)}") @storage.head_object(@directory.identity, 'fog_large_object').headers['Etag'].must_equal expected end end end end describe "specifying X-Object-Manifest segment prefix" do it "#put_dynamic_obj_manifest" do unless Fog.mocking? options = {'X-Object-Manifest' => "#{@directory.identity}/fog_large_object/"} @storage.put_dynamic_obj_manifest(@directory.identity, 'fog_large_object', options) end end describe "with large object" do before do unless Fog.mocking? options = {'X-Object-Manifest' => "#{@directory.identity}/fog_large_object/"} @storage.put_dynamic_obj_manifest(@directory.identity, 'fog_large_object', options) end end it "#get_object streams segments only matching the specified prefix" do unless Fog.mocking? expected = @segments[:a][:data] + @segments[:b][:data] resp = @storage.get_object(@directory.identity, 'fog_large_object') resp.body.must_equal expected end end it "#head_object returns Etag that does not include manifest object in calculation" do unless Fog.mocking? etags = [@segments[:a][:etag], @segments[:b][:etag]] # returned in quotes "\"0f035ed3cc38aa0ef46dda3478fad44d"\" expected = %("#{Digest::MD5.hexdigest(etags.join)}") @storage.head_object(@directory.identity, 'fog_large_object').headers['Etag'].must_equal expected end end end end describe "storing manifest in a different container than the segments" do before do unless Fog.mocking? options = {'X-Object-Manifest' => "#{@directory.identity}/fog_large_object/"} @storage.put_dynamic_obj_manifest(@directory2.identity, 'fog_large_object', options) end end it "#get_object" do unless Fog.mocking? expected = @segments[:a][:data] + @segments[:b][:data] @storage.get_object(@directory2.identity, 'fog_large_object').body.must_equal expected end end end end describe "static large object requests" do describe "single container" do before do unless Fog.mocking? segments = [ { :path => "#{@segments[:a][:container]}/#{@segments[:a][:name]}", :etag => @segments[:a][:etag], :size_bytes => @segments[:a][:size] }, { :path => "#{@segments[:c][:container]}/#{@segments[:c][:name]}", :etag => @segments[:c][:etag], :size_bytes => @segments[:c][:size] } ] @storage.put_static_obj_manifest(@directory.identity, 'fog_large_object', segments) end end it "#head_object" do unless Fog.mocking? etags = [@segments[:a][:etag], @segments[:c][:etag]] # "\"ad7e633a12e8a4915b45e6dd1d4b0b4b\"" etag = %("#{Digest::MD5.hexdigest(etags.join)}") content_length = @segments[:a][:size] + @segments[:c][:size] response = @storage.head_object(@directory.identity, 'fog_large_object') response.headers['Etag'].must_equal etag response.headers['Content-Length'].to_i.must_equal content_length response.headers['X-Static-Large-Object'].must_equal 'True' end end it "#get_object" do unless Fog.mocking? expected = @segments[:a][:data] + @segments[:c][:data] resp = @storage.get_object(@directory.identity, 'fog_large_object') resp.body.must_equal expected end end describe "#delete_static_large_object" do it "deletes manifest and segments" do unless Fog.mocking? expected = { 'Number Not Found' => 0, 'Response Status' => '200 OK', 'Errors' => [], 'Number Deleted' => 3, 'Response Body' => '' } @storage.delete_static_large_object(@directory.identity, 'fog_large_object').body.must_equal expected end end end end describe "multiple containers" do before do unless Fog.mocking? segments = [ { :path => "#{@segments[:b][:container]}/#{@segments[:b][:name]}", :etag => @segments[:b][:etag], :size_bytes => @segments[:b][:size] }, { :path => "#{@segments[:d][:container]}/#{@segments[:d][:name]}", :etag => @segments[:d][:etag], :size_bytes => @segments[:d][:size] } ] @storage.put_static_obj_manifest(@directory2.identity, 'fog_large_object', segments) end end it "#head_object" do unless Fog.mocking? etags = [@segments[:b][:etag], @segments[:d][:etag]] # "\"9801a4cc4472896a1e975d03f0d2c3f8\"" etag = %("#{Digest::MD5.hexdigest(etags.join)}") content_length = (@segments[:b][:size] + @segments[:d][:size]) response = @storage.head_object(@directory2.identity, 'fog_large_object') response.headers['Etag'].must_equal etag response.headers['Content-Length'].to_i.must_equal content_length response.headers['X-Static-Large-Object'].must_equal 'True' end end it "#get_object" do unless Fog.mocking? expected = @segments[:b][:data] + @segments[:d][:data] resp = @storage.get_object(@directory2.identity, 'fog_large_object') resp.body.must_equal expected end end it "#delete_static_large_object" do unless Fog.mocking? expected = { 'Number Not Found' => 0, 'Response Status' => '200 OK', 'Errors' => [], 'Number Deleted' => 3, 'Response Body' => '' } resp = @storage.delete_static_large_object(@directory2.identity, 'fog_large_object') resp.body.must_equal expected end end end end end describe "failure" do describe "dynamic large object requests" do it "#put_dynamic_obj_manifest with missing container" do unless Fog.mocking? proc do @storage.put_dynamic_obj_manifest('fognoncontainer', 'fog_large_object') end.must_raise Fog::OpenStack::Storage::NotFound end end end describe "static large object requests" do it "#put_static_obj_manifest with missing container" do unless Fog.mocking? proc do @storage.put_static_obj_manifest('fognoncontainer', 'fog_large_object', []) end.must_raise Fog::OpenStack::Storage::NotFound end end it "#put_static_obj_manifest with missing object" do unless Fog.mocking? segments = [{ :path => "#{@segments[:c][:container]}/#{@segments[:c][:name]}", :etag => @segments[:c][:etag], :size_bytes => @segments[:c][:size] }] expected = {'Errors' => [[segments[0][:path], '404 Not Found']]} err = proc do @storage.put_static_obj_manifest(@directory.identity, 'fog_large_object', segments) end.must_raise Excon::Errors::BadRequest Fog::JSON.decode(err.response.body).must_equal expected end end describe "with segments" do before do unless Fog.mocking? @segments.each_value do |segment| @storage.put_object(segment[:container], segment[:name], segment[:data]) end end end it "#put_static_obj_manifest with invalid etag" do unless Fog.mocking? segments = [{ :path => "#{@segments[:a][:container]}/#{@segments[:a][:name]}", :etag => @segments[:b][:etag], :size_bytes => @segments[:a][:size] }] expected = {'Errors' => [[segments[0][:path], 'Etag Mismatch']]} err = proc do @storage.put_static_obj_manifest(@directory.identity, 'fog_large_object', segments) end.must_raise Excon::Errors::BadRequest Fog::JSON.decode(err.response.body).must_equal expected end end it "#put_static_obj_manifest with invalid byte_size" do unless Fog.mocking? segments = [{ :path => "#{@segments[:a][:container]}/#{@segments[:a][:name]}", :etag => @segments[:a][:etag], :size_bytes => @segments[:b][:size] }] expected = {'Errors' => [[segments[0][:path], 'Size Mismatch']]} err = proc do @storage.put_static_obj_manifest(@directory.identity, 'fog_large_object', segments) end.must_raise Excon::Errors::BadRequest Fog::JSON.decode(err.response.body).must_equal expected end end describe "#delete_static_large_object with missing segment" do before do unless Fog.mocking? segments = [ { :path => "#{@segments[:a][:container]}/#{@segments[:a][:name]}", :etag => @segments[:a][:etag], :size_bytes => @segments[:a][:size] }, { :path => "#{@segments[:b][:container]}/#{@segments[:b][:name]}", :etag => @segments[:b][:etag], :size_bytes => @segments[:b][:size] } ] @storage.put_static_obj_manifest(@directory.identity, 'fog_large_object', segments) @storage.delete_object(@segments[:b][:container], @segments[:b][:name]) end end it "deletes manifest and segment :a, and reports missing segment :b" do unless Fog.mocking? expected = { 'Number Not Found' => 1, 'Response Status' => '200 OK', 'Errors' => [], 'Number Deleted' => 2, 'Response Body' => '' } @storage.delete_static_large_object(@directory.identity, 'fog_large_object').body.must_equal expected end end end end it "#delete_static_large_object with missing container" do unless Fog.mocking? expected = { 'Number Not Found' => 1, 'Response Status' => '200 OK', 'Errors' => [], 'Number Deleted' => 0, 'Response Body' => '' } resp = @storage.delete_static_large_object('fognoncontainer', 'fog_large_object') resp.body.must_equal expected end end it "#delete_static_large_object with missing manifest" do unless Fog.mocking? expected = { 'Number Not Found' => 1, 'Response Status' => '200 OK', 'Errors' => [], 'Number Deleted' => 0, 'Response Body' => '' } @storage.delete_static_large_object(@directory.identity, 'fog_non_object').body.must_equal expected end end end end end fog-openstack-1.1.5/test/requests/storage/object_tests.rb000066400000000000000000000252331476630434000236050ustar00rootroot00000000000000require "test_helper" def test_temp_url(url_s, time, desired_scheme) object_url = URI.parse(url_s) query_params = URI.decode_www_form(object_url.query) object_url.scheme.must_equal desired_scheme object_url.path.must_match %r{/#{@directory.identity}/fog_object} query_params.any? { |p| p[0] == 'temp_url_sig' }.must_equal true query_params.any? { |p| p == ['temp_url_expires', time.to_i.to_s] }.must_equal true end describe "Fog::OpenStack::Storage | object requests" do before do unless Fog.mocking? @directory = Fog::OpenStack::Storage.new.directories.create(:key => 'fogobjecttests') end module OpenStackStorageHelpers def override_path(path) @path = path end end end after do unless Fog.mocking? @directory.files.each(&:destroy) @directory.destroy end end describe "success" do it "#put_object('fogobjecttests', 'fog_object')" do resp = Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_object', lorem_file) resp.headers['ETag'].must_equal '80d7930fe13ff4e45156b6581656a247' end describe "with_object" do before do file = lorem_file resp = Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_object', file) file.close resp.headers['ETag'].must_equal '80d7930fe13ff4e45156b6581656a247' end it "#get_object('fogobjectests', 'fog_object')" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.get_object('fogobjecttests', 'fog_object') resp.body.must_equal lorem_file.read end end it "#get_object('fogobjecttests', 'fog_object', &block)" do unless Fog.mocking? data = '' Fog::OpenStack::Storage.new.get_object('fogobjecttests', 'fog_object') do |chunk, _remaining_bytes, _total_bytes| data << chunk end data.must_equal lorem_file.read end end it "#public_url('fogobjectests', 'fog_object')" do unless Fog.mocking? url = Fog::OpenStack::Storage.new.directories.first.files.first.public_url url.end_with?('/fogobjecttests/fog_object').must_equal true end end it "#public_url('fogobjectests')" do unless Fog.mocking? url = Fog::OpenStack::Storage.new.directories.first.public_url url.end_with?('/fogobjecttests').must_equal true end end it "#head_object('fogobjectests', 'fog_object')" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.head_object('fogobjecttests', 'fog_object') resp.headers['ETag'].must_equal '80d7930fe13ff4e45156b6581656a247' end end it "#post_object('fogobjecttests', 'fog_object')" do unless Fog.mocking? Fog::OpenStack::Storage.new.post_object( 'fogobjecttests', 'fog_object', 'X-Object-Meta-test-header' => 'fog-test-value' ) resp = Fog::OpenStack::Storage.new.head_object('fogobjecttests', 'fog_object') resp.headers.must_include 'X-Object-Meta-Test-Header' resp.headers['X-Object-Meta-Test-Header'].must_equal 'fog-test-value' end end it "#delete_object('fogobjecttests', 'fog_object')" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_object('fogobjecttests', 'fog_object') resp.status.must_equal 204 end end it "#get_object_http_url('directory.identity', 'fog_object', expiration timestamp)" do unless Fog.mocking? ts = Time.at(1_395_343_213) url_s = Fog::OpenStack::Storage.new.get_object_http_url(@directory.identity, 'fog_object', ts) test_temp_url(url_s, ts, 'http') end end it "#get_object_https_url('directory.identity', 'fog_object', expiration timestamp)" do unless Fog.mocking? ts = Time.at(1_395_343_213) url_s = Fog::OpenStack::Storage.new.get_object_https_url(@directory.identity, 'fog_object', ts) test_temp_url(url_s, ts, 'https') end end it "#get_object_https_url_numeric('directory.identity', 'fog_object', expiration_timestamp)" do unless Fog.mocking? ts = Time.at(1_500_000_000) fog = Fog::Storage.new(:provider => :openstack, :openstack_temp_url_key => '12345') url_s = fog.get_object_https_url(@directory.identity, 'fog_object', ts) test_temp_url(url_s, ts, 'https') end end end describe "put_object with block" do it "#put_object('fogobjecttests', 'fog_object', &block)" do begin file = lorem_file buffer_size = file.stat.size / 2 # chop it up into two buffers resp = Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_block_object', nil) do file.read(buffer_size).to_s end ensure file.close end resp.headers['ETag'].must_equal '80d7930fe13ff4e45156b6581656a247' end describe "with_object" do before do file = lorem_file Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_block_object', nil) do file.read(file.stat.size).to_s end file.close end it "#get_object" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.get_object('fogobjecttests', 'fog_block_object') resp.body.must_equal lorem_file.read end end it "#delete_object" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_object('fogobjecttests', 'fog_block_object') resp.status.must_equal 204 end end end end describe "deletes multiple objects" do before do unless Fog.mocking? Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_object', lorem_file) Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_object2', lorem_file) Fog::OpenStack::Storage.new.directories.create(:key => 'fogobjecttests2') Fog::OpenStack::Storage.new.put_object('fogobjecttests2', 'fog_object', lorem_file) end @expected = { "Number Not Found" => 0, "Response Status" => "200 OK", "Errors" => [], "Number Deleted" => 2, "Response Body" => "" } end after do unless Fog.mocking? dir2 = Fog::OpenStack::Storage.new.directories.get('fogobjecttests2') unless dir2.nil? dir2.files.each(&:destroy) dir2.destroy end end end it "#delete_multiple_objects" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_multiple_objects( 'fogobjecttests', %w[fog_object fog_object2] ) resp.body.must_equal @expected end end it "deletes object and container" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_multiple_objects( nil, ['fogobjecttests2/fog_object', 'fogobjecttests2'] ) resp.body.must_equal @expected end end end end describe "failure" do it "#get_object('fogobjecttests', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.get_object('fogobjecttests', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#get_object('fognoncontainer', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.get_object('fognoncontainer', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#head_object('fogobjecttests', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.head_object('fogobjecttests', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#head_object('fognoncontainer', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.head_object('fognoncontainer', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#post_object('fognoncontainer', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.post_object('fognoncontainer', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#delete_object('fogobjecttests', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.delete_object('fogobjecttests', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end it "#delete_object('fognoncontainer', 'fog_non_object')" do unless Fog.mocking? proc do Fog::OpenStack::Storage.new.delete_object('fognoncontainer', 'fog_non_object') end.must_raise(Fog::OpenStack::Storage::NotFound) end end describe "#delete_multiple_objects" do before do unless Fog.mocking? @expected = { "Number Not Found" => 2, "Response Status" => "200 OK", "Errors" => [], "Number Deleted" => 0, "Response Body" => "" } end end it "reports missing objects" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_multiple_objects( 'fogobjecttests', %w[fog_non_object fog_non_object2] ) resp.body.must_equal @expected end end it "reports missing container" do unless Fog.mocking? resp = Fog::OpenStack::Storage.new.delete_multiple_objects( 'fognoncontainer', %w[fog_non_object fog_non_object2] ) resp.body.must_equal @expected end end it "deleting non-empty container" do unless Fog.mocking? file = lorem_file resp = Fog::OpenStack::Storage.new.put_object('fogobjecttests', 'fog_object', file) file.close resp.headers['ETag'].must_equal '80d7930fe13ff4e45156b6581656a247' expected = { "Number Not Found" => 0, "Response Status" => "400 Bad Request", "Errors" => [['fogobjecttests', '409 Conflict']], "Number Deleted" => 0, "Response Body" => "" } resp = Fog::OpenStack::Storage.new.delete_multiple_objects( nil, %w[fogobjecttests] ) resp.body.must_equal expected end end end end end fog-openstack-1.1.5/test/requests/volume/000077500000000000000000000000001476630434000204265ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/volume/availability_zone_tests.rb000066400000000000000000000005721476630434000257060ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Volume | availability zone requests" do before do @flavor_format = { 'zoneName' => String, 'zoneState' => Hash } end describe "success" do it "#list_zones" do Fog::OpenStack::Volume.new.list_zones.body. must_match_schema('availabilityZoneInfo' => [@flavor_format]) end end end fog-openstack-1.1.5/test/requests/volume/backup_tests.rb000066400000000000000000000017121476630434000234430ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Volume | backup requests" do before do @volume = Fog::OpenStack::Volume.new @backup_format = { 'id' => String, 'volume_id' => String, 'status' => String, 'name' => String, 'size' => Integer, 'object_count' => Integer, 'container' => String } @backup = @volume.create_backup(:name => 'test_backup', :volume_id => '2').body['backup'] end describe "success" do it "create_backup" do @backup.must_match_schema(@backup_format) end it "#get_backup_details" do @volume.get_backup_details(@backup['id']).body['backup']. must_match_schema(@backup_format) end it "#list_backups_detailed" do @volume.list_backups_detailed.body['backups']. must_match_schema([@backup_format]) end it '#delete_backup' do @volume.delete_backup(@backup['id']) end end end fog-openstack-1.1.5/test/requests/volume/quota_tests.rb000066400000000000000000000021471476630434000233320ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Volume | quota requests" do before do @volume = Fog::OpenStack::Volume.new identity = Fog::OpenStack::Identity.new(:openstack_identity_api_version => 'v2.0') @tenant_id = identity.list_tenants.body['tenants'].first['id'] @quota_set_format = { 'volumes' => Fog::Nullable::Integer, 'gigabytes' => Fog::Nullable::Integer, 'snapshots' => Fog::Nullable::Integer, 'id' => String } @quota = @volume.get_quota(@tenant_id).body['quota_set'] end describe "success" do it "#get_quota_defaults" do @volume.get_quota_defaults(@tenant_id).body. must_match_schema('quota_set' => @quota_set_format) end it "#get_quota" do @quota.must_match_schema(@quota_set_format) end it "updates quota" do @new_values = @quota.merge( 'volumes' => @quota['volumes'] / 2, 'snapshots' => @quota['snapshots'] / 2 ) @volume.update_quota(@tenant_id, @new_values.clone) @volume.get_quota(@tenant_id).body['quota_set'].must_match_schema @new_values end end end fog-openstack-1.1.5/test/requests/volume/volume_type_tests.rb000066400000000000000000000021231476630434000245430ustar00rootroot00000000000000require 'test_helper' describe "Fog::OpenStack::Volume | volume_type requests" do before do @volume = Fog::OpenStack::Volume.new @volume_type_format = { 'name' => String, 'extra_specs' => Hash, 'id' => String } @volume_type = @volume.create_volume_type(:name => 'test_volume_type').body['volume_type'] end describe "success" do it "#create_volume_type" do @volume_type.must_match_schema(@volume_type_format) end it "#update_volume_type" do @volume.update_volume_type( @volume_type['id'], :name => 'test_volume_type_1' ).body['volume_type'].must_match_schema(@volume_type_format) end it "#get_volume_type" do @volume.get_volume_type_details(@volume_type['id']).body['volume_type']. must_match_schema(@volume_type_format) end it "#list_volume_type" do @volume.list_volume_types.body['volume_types']. must_match_schema([@volume_type_format]) end it 'delete the volute type' do @volume.delete_volume_type(@volume_type['id']) end end end fog-openstack-1.1.5/test/requests/workflow/000077500000000000000000000000001476630434000207715ustar00rootroot00000000000000fog-openstack-1.1.5/test/requests/workflow/workflow_tests.rb000066400000000000000000000152051476630434000244150ustar00rootroot00000000000000require "test_helper" require 'fog/openstack/workflow' require 'fog/openstack/workflow/v2' describe "Fog::OpenStack::Workflow | Workflow requests" do before do @workflow = Fog::OpenStack::Workflow.new @execution_id = Fog::UUID.uuid @workflow_name = "tripleo.plan_management.v1.create_default_deployment_plan" @input = { :container => 'default' } @get_execution_response = { "state" => "running", "id" => "1111" } @workbook_sample = { "version" => "2.0", "name" => "workbook1", "description" => "d1", } @workflow_sample = { "version" => "2.0", "name" => "workflow1", "description" => "d1", } @action_sample = { "version" => "2.0", "action1" => { "input" => ['test_id'] } } @task_sample = { "version" => "2.0", "task1" => { "id" => ['test_id'] } } @cron_trigger_sample = { "version" => "2.0", "name" => "cron_trigger1", "description" => "d1", } @environment_sample = { "name" => "environment1", "variables" => { "var1" => "value1", "var2" => "value2" } } end describe "success" do it "#create_execution" do @workflow.create_execution(@workflow_name, @input).status.must_equal 201 end it "#get_execution" do response = @workflow.get_execution(@execution_id) response.status.must_equal 200 response.body.must_match_schema(@get_execution_response) end it "#list_executions" do @workflow.list_executions.status.must_equal 200 end it "#update_execution" do response = @workflow.update_execution(@execution_id, "description", "changed description") response.status.must_equal 200 end it "#delete_execution" do response = @workflow.delete_execution(@execution_id) response.status.must_equal 204 end it "#create_action_execution" do action_name = "tripleo.list_roles" @workflow.create_action_execution(action_name, @input).status.must_equal 201 end it "#get_action_execution" do response = @workflow.get_action_execution(@execution_id) response.status.must_equal 200 response.body.must_match_schema(@get_execution_response) end it "#list_action_executions" do @workflow.list_action_executions.status.must_equal 200 end it "#update_action_execution" do response = @workflow.update_action_execution(@execution_id, "output", "changed output") response.status.must_equal 200 end it "#delete_action_execution" do response = @workflow.delete_action_execution(@execution_id) response.status.must_equal 204 end it "#create_workbook" do @workflow.create_workbook(@workbook_sample).status.must_equal 201 end it "#get_workbook" do response = @workflow.get_workbook(@workbook_sample[:name]) response.status.must_equal 200 response.body.must_match_schema(@workbook_sample) end it "#list_workbooks" do @workflow.list_workbooks.status.must_equal 200 end it "#update_workbook" do response = @workflow.update_workbook(@workbook_sample) response.status.must_equal 200 end it "#validate_workbook" do response = @workflow.validate_workbook(@workbook_sample) response.status.must_equal 200 end it "#delete_workbook" do response = @workflow.delete_workbook(@workbook_sample[:name]) response.status.must_equal 204 end it "#create_workflow" do @workflow.create_workflow(@workflow_sample).status.must_equal 201 end it "#get_workflow" do response = @workflow.get_workflow(@workflow_sample[:name]) response.status.must_equal 200 response.body.must_match_schema(@workflow_sample) end it "#list_workflows" do @workflow.list_workflows.status.must_equal 200 end it "#update_workflow" do response = @workflow.update_workflow(@workflow_sample) response.status.must_equal 200 end it "#validate_workflow" do response = @workflow.validate_workflow(@workflow_sample) response.status.must_equal 200 end it "#delete_workflow" do response = @workflow.delete_workflow(@workflow_sample[:name]) response.status.must_equal 204 end it "#create_action" do @workflow.create_action(@action_sample).status.must_equal 201 end it "#get_action" do response = @workflow.get_action("action1") response.status.must_equal 200 response.body.must_match_schema(@action_sample) end it "#list_actions" do @workflow.list_actions.status.must_equal 200 end it "#update_action" do response = @workflow.update_action(@action_sample) response.status.must_equal 200 end it "#validate_action" do response = @workflow.validate_action(@action_sample) response.status.must_equal 200 end it "#delete_action" do response = @workflow.delete_action("action1") response.status.must_equal 204 end it "#get_task" do response = @workflow.get_task("1") response.status.must_equal 200 response.body.must_match_schema(@task_sample) end it "#list_tasks" do response = @workflow.validate_action("1") response.status.must_equal 200 end it "#rerun_task" do response = @workflow.delete_action("1") response.status.must_equal 204 end it "#create_cron_trigger" do @workflow.create_cron_trigger("cron1", 1, "input").status.must_equal 201 end it "#get_cron_trigger" do response = @workflow.get_cron_trigger("cron1") response.status.must_equal 200 response.body.must_match_schema(@cron_trigger_sample) end it "#list_cron_triggers" do @workflow.list_cron_triggers.status.must_equal 200 end it "#delete_cron_trigger" do response = @workflow.delete_cron_trigger("cron1") response.status.must_equal 204 end it "#create_environment" do @workflow.create_environment(@environment_sample).status.must_equal 201 end it "#get_environment" do response = @workflow.get_environment("environment1") response.status.must_equal 200 response.body.must_match_schema(@environment_sample) end it "#list_environments" do @workflow.list_environments.status.must_equal 200 end it "#update_environment" do response = @workflow.update_environment(@environment_sample) response.status.must_equal 200 end it "#delete_environment" do response = @workflow.delete_environment("environment1") response.status.must_equal 204 end end end fog-openstack-1.1.5/test/schema_validator_tests.rb000066400000000000000000000075661476630434000223360ustar00rootroot00000000000000# To Do: Move this test to fog-core require 'test_helper' describe "Fog::Schema::DataValidator, 'meta'" do let(:validator) { Fog::Schema::DataValidator.new } describe "#validate" do it "returns true when value matches schema expectation" do validator.validate({"key" => "Value"}, "key" => String).must_equal true end it "returns true when values within an array all match schema expectation" do validator.validate({"key" => [1, 2]}, "key" => [Integer]).must_equal true end it "returns true when nested values match schema expectation" do validator.validate({"key" => {:nested_key => "Value"}}, "key" => {:nested_key => String}).must_equal true end it "returns true when collection of values all match schema expectation" do validator.validate([{"key" => "Value"}, {"key" => "Value"}], [{"key" => String}]).must_equal true end it "returns true when collection is empty although schema covers optional members" do validator.validate([], [{"key" => String}]).must_equal true end it "returns true when additional keys are passed and not strict" do validator.validate({"key" => "Value", :extra => "Bonus"}, {"key" => String}, :allow_extra_keys => true).must_equal true end it "returns true when value is nil and schema expects NilClass" do validator.validate({"key" => nil}, {"key" => NilClass}).must_equal true end it "returns true when value and schema match as hashes" do validator.validate({}, {}).must_equal true end it "returns true when value and schema match as arrays" do validator.validate([], []).must_equal true end it "returns true when value is a Time" do validator.validate({"time" => Time.now}, "time" => Time).must_equal true end it "returns true when key is missing but value should be NilClass (#1477)" do validator.validate({}, {"key" => NilClass}, :allow_optional_rules => true).must_equal true end it "returns true when key is missing but value is nullable (#1477)" do validator.validate({}, {"key" => Fog::Nullable::String}, :allow_optional_rules => true).must_equal true end it "returns false when value does not match schema expectation" do validator.validate({"key" => nil}, "key" => String).must_equal false end it "returns false when key formats do not match" do validator.validate({"key" => "Value"}, :key => String).must_equal false end it "returns false when additional keys are passed and strict" do validator.validate({"key" => "Missing"}, {}).must_equal false end it "returns false when some keys do not appear" do validator.validate({}, "key" => String).must_equal false end it "returns false when collection contains a member that does not match schema" do validator.validate([{"key" => "Value"}, {"key" => 5}], [{"key" => String}]).must_equal false end it "returns false when collection has multiple schema patterns" do validator.validate([{"key" => "Value"}], [{"key" => Integer}, {"key" => String}]).must_equal false end it "returns false when hash and array are compared" do validator.validate({}, []).must_equal false end it "returns false when array and hash are compared" do validator.validate([], {}).must_equal false end it "returns false when a hash is expected but another data type is found" do validator.validate({"key" => {:nested_key => []}}, "key" => {:nested_key => {}}).must_equal false end it "returns false when key is missing but value should be NilClass (#1477)" do validator.validate({}, {"key" => NilClass}, :allow_optional_rules => false).must_equal false end it "returns false when key is missing but value is nullable (#1477)" do validator.validate({}, {"key" => Fog::Nullable::String}, :allow_optional_rules => false).must_equal false end end end fog-openstack-1.1.5/test/storage_tests.rb000066400000000000000000000010671476630434000204630ustar00rootroot00000000000000require "test_helper" describe "Fog::OpenStack::Storage, ['openstack', 'storage']" do before do @storage = Fog::OpenStack::Storage.new @original_path = @storage.instance_variable_get :@path end describe "account changes" do it "#change_account" do new_account = 'AUTH_1234567890' @storage.change_account new_account @storage.instance_variable_get(:@path) != @original_path end it "#reset_account_name" do @storage.reset_account_name @storage.instance_variable_get(:@path) == @original_path end end end fog-openstack-1.1.5/test/test_helper.rb000066400000000000000000000066241476630434000201170ustar00rootroot00000000000000# TODO: remove when https://github.com/fog/fog-openstack/issues/202 is fixed # require 'coveralls' # Coveralls.wear! require 'minitest/autorun' require "minitest/spec" require 'fog/core' require 'fog/test_helpers/types_helper.rb' require 'fog/test_helpers/minitest/assertions' require 'fog/test_helpers/minitest/expectations' require File.expand_path('../../lib/fog/openstack', __FILE__) Fog.mock! if ENV["FOG_MOCK"] == "true" Bundler.require(:test) Excon.defaults.merge!(:debug_request => true, :debug_response => true) require File.expand_path(File.join(File.dirname(__FILE__), 'helpers', 'mock_helper')) # This overrides the default 600 seconds timeout during live test runs unless Fog.mocking? Fog.timeout = ENV['FOG_TEST_TIMEOUT'] || 2_000 Fog::Logger.warning "Setting default fog timeout to #{Fog.timeout} seconds" end def lorem_file name = File.dirname(__FILE__) + '/lorem.txt' if not File.file?(name) f = File.open(name, 'w') f.write( "Lorem ipsum dolor sit amet, no partem signiferumque vix, feugiat "\ "oporteat inciderint an sit, porro oratio concludaturque an vim. Mel "\ "commodo eripuit id, ei amet detraxit nec. Duo legendos constituam "\ "delicatissimi no, dolor legere ne vix, eros disputationi at per." \ "Lucilius perfecto cum an, vel et dicat accommodare, minim reformidans eu" \ "sed. Has veri novum dissentiunt id, melius dissentiunt eum id. Quo no" \ "vidisse nusquam rationibus, usu ut veri choro. Ex eligendi suscipit nec," \ "falli putant vim eu, vix assum graecis reprehendunt ad." \ "" \ "Has ipsum patrioque evertitur an, vis facete admodum ex, an qui posse" \ "erant nihil. Nam sonet salutandi ad, cum oblique disputando et. Ne" \ "melius veritus vocibus quo, debet eruditi cu mel. Elitr aperiri atomorum" \ "et eum." \ "" \ "Sea electram prodesset te. Invidunt principes mea in. Natum oblique" \ "assueverit ea mea, eos ut solum nullam, an pro simul clita impetus. Per" \ "apeirian dissentiunt ne, feugait maluisset reprehendunt cu his. Cu" \ "gubergren aliquando moderatius mei, mei saepe impedit ut." \ "" \ "Te mea facilisis cotidieque definitiones, has illum ullum sensibus id," \ "in meliore minimum assentior duo. Ne nec cibo sadipscing mediocritatem," \ "lorem fabellas lobortis ut vim, noluisse consetetur temporibus pri ut." \ "Qui no nibh appareat delicata, id vis integre debitis, sed probo" \ "probatus eu. Vel dicat debet ancillae at, lorem debet ponderum eu cum." \ "An sea case affert, option graecis duo ea. Vivendum legendos eum eu." \ "" \ "Et est inani dolore, dicta prodesset qui ne. Inermis veritus fierent mei" \ "no, sit in amet reque philosophia. Erant docendi sit ne. His id" \ "petentium periculis. Veri efficiendi no has, id vix quas eripuit" \ "temporibus.") f.close end File.open(File.dirname(__FILE__) + '/lorem.txt', 'r') end def array_differences(array_a, array_b) (array_a - array_b) | (array_b - array_a) end def prefix_with_url(files, base_url) files.map { |fname| File.join(base_url.to_s, fname) }.compact end def assert_equal_set(a, b) assert_equal(Set.new(a), Set.new(b)) end module Minitest class Test # Some tests need to be fixed. There are skipped unless the following is true UNIT_TESTS_CLEAN = false end end fog-openstack-1.1.5/test/version_tests.rb000066400000000000000000000032441476630434000205030ustar00rootroot00000000000000require "test_helper" describe "OpenStack | versions, ['openstack']" do before do @old_mock_value = Excon.defaults[:mock] Excon.defaults[:mock] = true Excon.stubs.clear @body = { "versions" => [ { "status" => "CURRENT", "id" => "v2.0", "links" => [ { "href" => "http://example:9292/v2/", "rel" => "self" } ] }, { "status" => "CURRENT", "id" => "v1.1", "links" => [ { "href" => "http://exampple:9292/v1/", "rel" => "self" } ] }, { "status" => "SUPPORTED", "id" => "v1.0", "links" => [ { "href" => "http://example:9292/v1/", "rel" => "self" } ] } ] } end it "supported" do Excon.stub({:method => 'GET'}, {:status => 300, :body => Fog::JSON.encode(@body)}) assert("v1.1") do Fog::OpenStack.get_supported_version(/v1(\.(0|1))*/, URI('http://example/'), "authtoken") end end it "unsupported" do Excon.stub( {:method => 'GET'}, {:status => 300, :body => Fog::JSON.encode(@body)} ) proc do Fog::OpenStack.get_supported_version( /v3(\.(0|1))*/, URI('http://example/'), "authtoken" ) end.must_raise Fog::OpenStack::Errors::ServiceUnavailable end after do Excon.stubs.clear Excon.defaults[:mock] = @old_mock_value end end fog-openstack-1.1.5/test/volume_tests.rb000066400000000000000000000012401476630434000203170ustar00rootroot00000000000000require 'test_helper' require 'fog/openstack/volume' require 'fog/openstack/volume/v1' require 'fog/openstack/volume/v2' describe "Fog::OpenStack::Volume, ['openstack', 'volume']" do volume = Fog::OpenStack::Volume.new describe "Volumes collection" do %w{ volumes }.each do |collection| it "should respond to #{collection}" do volume.respond_to? collection end it "should respond to #{collection}.all" do eval("volume.#{collection}").respond_to? 'all' end # not implemented # it "should respond to #{collection}.get" do # eval("volume.#{collection}").respond_to? 'get' # end end end end fog-openstack-1.1.5/unit/000077500000000000000000000000001476630434000152445ustar00rootroot00000000000000fog-openstack-1.1.5/unit/auth/000077500000000000000000000000001476630434000162055ustar00rootroot00000000000000fog-openstack-1.1.5/unit/auth/catalog_test.rb000066400000000000000000000174451476630434000212160ustar00rootroot00000000000000require 'test_helper' describe Fog::OpenStack::Auth::Catalog::V3 do CATALOGV3 = [ { "endpoints" => [ { "region_id" => "regionOne", "url" => "http://localhost:9696", "region" => "regionOne", "interface" => "internal", "id" => "id_endpoint1_internal" }, { "region_id" => "regionOne", "url" => "http://localhost:9696", "region" => "regionOne", "interface" => "public", "id" => "id_endpoint1_public" }, { "region_id" => "regionOne", "url" => "http://localhost:9696", "region" => "regionOne", "interface" => "admin", "id" => "id_endpoint1_admin" } ], "type" => "network", "id" => "id1", "name" => "neutron" }, { "endpoints" => [ { "region_id" => "regionOne", "url" => "http://localhost:9292", "region" => "regionOne", "interface" => "internal", "id" => "id_endpoint1_internal" }, { "region_id" => "regionOne", "url" => "http://localhost:9292", "region" => "regionOne", "interface" => "public", "id" => "id_endpoint1_public" }, { "region_id" => "regionOne", "url" => "http://localhost:9292", "region" => "regionOne", "interface" => "admin", "id" => "id_endpoint1_admin" } ], "type" => "image", "id" => "id2", "name" => "glance" }, { "endpoints" => [ { "region_id" => "regionOne", "url" => "http://localhost:5000", "region" => "regionOne", "interface" => "internal", "id" => "id_endpoint1_internal" }, { "region_id" => "regionOne", "url" => "http://localhost:5000", "region" => "regionOne", "interface" => "public", "id" => "id_endpoint1_public" }, { "region_id" => "regionOne", "url" => "http://localhost:35357", "region" => "regionOne", "interface" => "admin", "id" => "id_endpoint1_admin" } ], "type" => "identity", "id" => "id3", "name" => "keystone" }, { "endpoints" => [ { "region_id" => "regionOne", "url" => "http://localhost2:5000", "region" => "regionTwo", "interface" => "internal", "id" => "id_endpoint1_internal" }, { "region_id" => "regionTwo", "url" => "http://localhost2:5000", "region" => "regionTwo", "interface" => "public", "id" => "id_endpoint1_public" }, { "region_id" => "regionTwo", "url" => "http://localhost2:35357", "region" => "regionTwo", "interface" => "admin", "id" => "id_endpoint1_admin" } ], "type" => "identity", "id" => "id3", "name" => "keystone" } ].freeze let(:payload) do CATALOGV3 end describe '#get_endpoint_url' do it 'with matching name, interface and region' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) catalog.get_endpoint_url('identity', 'admin', 'regionTwo').must_equal 'http://localhost2:35357' end it 'with matching name and interface using avail region' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) catalog.get_endpoint_url('network', %w[dummy admin]).must_equal 'http://localhost:9696' end it 'with matching name and interface list' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) catalog.get_endpoint_url('network', %w[dummy admin]).must_equal 'http://localhost:9696' end it 'with matching name and interface and several regions available' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) proc do catalog.get_endpoint_url('identity', 'admin') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end it 'with unmatched name for service type' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) proc do catalog.get_endpoint_url('service', 'public') end.must_raise Fog::OpenStack::Auth::Catalog::ServiceTypeError end it 'with unmatched region' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) proc do catalog.get_endpoint_url('identity', 'admin', 'regionOther') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end it 'with unmatched interface' do catalog = Fog::OpenStack::Auth::Catalog::V3.new(payload) proc do catalog.get_endpoint_url('identity', 'private') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end end end describe Fog::OpenStack::Auth::Catalog::V2 do CATALOGV2 = [ { 'endpoints' => [{ 'adminURL' => 'http://localhost', 'region' => 'regionOne', 'internalURL' => 'http://localhost:8888/v2.0', 'id' => 'id_endpoints', 'publicURL' => 'http://localhost' }], 'endpoints_links' => [], 'type' => 'identity', 'name' => 'keystone' }, { 'endpoints' => [{ 'adminURL' => 'http://localhost', 'region' => 'regionTwo', 'internalURL' => 'http://localhost:9999/v2.0', 'id' => 'id_endpoints', 'publicURL' => 'http://localhost' }], 'endpoints_links' => [], 'type' => 'identity', 'name' => 'keystone' }, { 'endpoints' => [{ 'adminURL' => 'http://localhost', 'region' => 'regionOne', 'internalURL' => 'http://localhost:7777/v1.0', 'id' => 'id_endpoints', 'publicURL' => 'http://localhost' }], 'endpoints_links' => [], 'type' => 'compute', 'name' => 'nova' } ].freeze let(:payload) do CATALOGV2 end describe '#get_endpoint_url' do it 'match name, interface and region' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) catalog.get_endpoint_url('identity', 'internal', 'regionTwo').must_equal 'http://localhost:9999/v2.0' end it 'match name, interface and unique region available' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) catalog.get_endpoint_url('compute', 'internal').must_equal 'http://localhost:7777/v1.0' end it 'fails when multiple region match' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) proc do catalog.get_endpoint_url('identity', 'admin') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end it 'with unmatched arguments' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) proc do catalog.get_endpoint_url('test', 'unknown', 'regionOther') end.must_raise Fog::OpenStack::Auth::Catalog::ServiceTypeError end it 'with unmatched region' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) proc do catalog.get_endpoint_url('identity', 'admin', 'regionOther') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end it 'with unmatched interface' do catalog = Fog::OpenStack::Auth::Catalog::V2.new(payload) proc do catalog.get_endpoint_url('identity', 'private', 'regionTwo') end.must_raise Fog::OpenStack::Auth::Catalog::EndpointError end end end fog-openstack-1.1.5/unit/auth/name_test.rb000066400000000000000000000076161476630434000205230ustar00rootroot00000000000000require 'test_helper' require 'fog/openstack/auth/name' describe Fog::OpenStack::Auth::Name do describe 'creates' do it 'when id and name are provided' do name = Fog::OpenStack::Auth::Name.new('default', 'Default') name.id.must_equal 'default' name.name.must_equal 'Default' end it 'when id is null' do name = Fog::OpenStack::Auth::Name.new(nil, 'Default') name.id.must_be_nil name.name.must_equal 'Default' end it 'when name is null' do name = Fog::OpenStack::Auth::Name.new('default', nil) name.id.must_equal 'default' name.name.must_be_nil end it 'when both id and name is null' do name = Fog::OpenStack::Auth::Name.new(nil, nil) name.name.must_be_nil end end describe '#to_h' do it 'returns the hash of provided attribute' do name = Fog::OpenStack::Auth::Name.new('default', 'Default') name.to_h(:id).must_equal(:id => 'default') name.to_h(:name).must_equal(:name => 'Default') end end end describe Fog::OpenStack::Auth::User do describe '#password' do it 'set/get password' do user = Fog::OpenStack::Auth::User.new('user_id', 'User') user.password = 'secret' user.identity.must_equal(:user => {:id => 'user_id', :password => 'secret'}) end end describe '#identity' do describe 'succesful' do it "with user id and user name" do user = Fog::OpenStack::Auth::User.new('user_id', 'User') user.password = 'secret' user.identity.must_equal(:user => {:id => 'user_id', :password => 'secret'}) end it 'with user name and user domain name' do user = Fog::OpenStack::Auth::User.new(nil, 'User') user.password = 'secret' user.domain = Fog::OpenStack::Auth::Name.new('default', nil) user.identity.must_equal(:user => {:name => 'User', :domain => {:id => 'default'}, :password => 'secret'}) end it 'with user name and domain name' do user = Fog::OpenStack::Auth::User.new(nil, 'User') user.password = 'secret' user.domain = Fog::OpenStack::Auth::Name.new(nil, 'Default') user.identity.must_equal(:user => {:name => 'User', :domain => {:name => 'Default'}, :password => 'secret'}) end end describe 'raises an error' do it 'raises an error when password is missing' do proc do user = Fog::OpenStack::Auth::User.new('user_id', 'User') user.identity end.must_raise Fog::OpenStack::Auth::CredentialsError end it 'with only user name and no domain' do proc do user = Fog::OpenStack::Auth::User.new(nil, 'User') user.identity end.must_raise Fog::OpenStack::Auth::CredentialsError end end end end describe Fog::OpenStack::Auth::ProjectScope do describe '#identity' do it "when id is provided it doesn't require domain" do project = Fog::OpenStack::Auth::ProjectScope.new('project_id', 'Project') project.identity.must_equal(:project => {:id => 'project_id'}) end it 'when id is nul and name is provided it uses domain id' do project = Fog::OpenStack::Auth::ProjectScope.new(nil, 'Project') project.domain = Fog::OpenStack::Auth::Name.new('default', nil) project.identity.must_equal(:project => {:name => 'Project', :domain => {:id => 'default'}}) end it 'when id is nul and name is provided it uses domain name' do project = Fog::OpenStack::Auth::ProjectScope.new(nil, 'Project') project.domain = Fog::OpenStack::Auth::Name.new(nil, 'Default') project.identity.must_equal(:project => {:name => 'Project', :domain => {:name => 'Default'}}) end it 'raises an error with no project id and no domain are provided' do proc do project = Fog::OpenStack::Auth::ProjectScope.new(nil, 'Project') project.identity end.must_raise Fog::OpenStack::Auth::CredentialsError end end end fog-openstack-1.1.5/unit/auth/token_test.rb000066400000000000000000000451551476630434000207230ustar00rootroot00000000000000require 'test_helper' require 'auth_helper' describe Fog::OpenStack::Auth::Token do describe 'V3' do describe '#new' do it 'fails when missing credentials' do stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). to_return( :status => 200, :body => "{\"token\":{\"catalog\":[]}}", :headers => {'x-subject-token'=>'token_data'} ) proc do Fog::OpenStack::Auth::Token.build({}, {}) end.must_raise Fog::OpenStack::Auth::Token::URLError end describe 'using the password method' do describe 'with a project scope' do it 'authenticates using a project id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_userid => 'user_id', :openstack_api_key => 'secret', :openstack_project_id => 'project_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":\ {\"id\":\"user_id\",\"password\":\"secret\"}}},\"scope\":{\"project\":{\"id\":\"project_id\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data_v3'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data_v3' end it 'authenticates using a project name and a project domain id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_userid => 'user_id', :openstack_api_key => 'secret', :openstack_project_name => 'project', :openstack_project_domain_id => 'project_domain_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"id\":\ \"user_id\",\"password\":\"secret\"}}},\"scope\":{\"project\":{\"name\":\"project\",\"domain\":{\"id\":\ \"project_domain_id\"}}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end it 'authenticates using a project name and a project domain name' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_username => 'user', :openstack_user_domain_name => 'user_domain', :openstack_api_key => 'secret', :openstack_project_name => 'project', :openstack_project_domain_name => 'project_domain' } stub_request(:post, "http://localhost/identity/v3/auth/tokens"). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"name\":\ \"user\",\"domain\":{\"name\":\"user_domain\"},\"password\":\"secret\"}}},\"scope\":{\"project\":{\"name\":\"project\"\ ,\"domain\":{\"name\":\"project_domain\"}}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end describe 'with a domain scope' do it 'authenticates using a domain id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_userid => 'user_id', :openstack_api_key => 'secret', :openstack_domain_id => 'domain_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"id\":\ \"user_id\",\"password\":\"secret\"}}},\"scope\":{\"domain\":{\"id\":\"domain_id\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end it 'authenticates using a domain name' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_userid => 'user_id', :openstack_api_key => 'secret', :openstack_domain_name => 'domain' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"id\":\ \"user_id\",\"password\":\"secret\"}}},\"scope\":{\"domain\":{\"name\":\"domain\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end describe 'unscoped' do it 'authenticates' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_userid => 'user_id', :openstack_api_key => 'secret', } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":{\"user\":{\"id\":\ \"user_id\",\"password\":\"secret\"}}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end end describe 'using the token method' do describe 'unscoped' do it 'authenticates using a project id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token', } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"token\"],\"token\":{\"id\":\"token\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end describe 'with a project scope' do it 'authenticates using a project id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token', :openstack_project_id => 'project_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"token\"],\"token\":{\"id\":\"token\"}},\ \"scope\":{\"project\":{\"id\":\"project_id\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end it 'authenticates using a project name and a project domain id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token', :openstack_project_name => 'project', :openstack_project_domain_id => 'domain_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"token\"],\"token\":{\"id\":\"token\"}},\ \"scope\":{\"project\":{\"name\":\"project\",\"domain\":{\"id\":\"domain_id\"}}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end describe 'with a domain scope' do it 'authenticates using a domain id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token', :openstack_domain_id => 'domain_id' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"token\"],\"token\":{\"id\":\"token\"}},\ \"scope\":{\"domain\":{\"id\":\"domain_id\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end it 'authenticates using a domain name' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token', :openstack_domain_name => 'domain' } stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). with(:body => "{\"auth\":{\"identity\":{\"methods\":[\"token\"],\"token\":{\"id\":\"token\"}},\ \"scope\":{\"domain\":{\"name\":\"domain\"}}}}"). to_return( :status => 200, :body => JSON.dump(auth_response_v3('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal 'token_data' end end end end describe 'when authenticated' do let(:authv3_creds) do { :openstack_auth_url => 'http://localhost/identity', :openstack_username => 'admin', :openstack_api_key => 'secret', :openstack_project_name => 'admin', :openstack_project_domain_id => 'default' } end describe '#get' do it 'when token has not expired' do stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). to_return( :status => 200, :body => "{\"token\":{\"catalog\":[\"catalog_data\"]}}", :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(authv3_creds, {}) token.stub :expired?, false do token.get.must_equal 'token_data' end end it 'when token has expired' do stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). to_return( :status => 200, :body => "{\"token\":{\"catalog\":[\"catalog_data\"]}}", :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(authv3_creds, {}) token.stub :expired?, true do token.get.must_equal 'token_data' end end end it '#catalog' do stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). to_return( :status => 200, :body => "{\"token\":{\"catalog\":[\"catalog_data\"]}}", :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(authv3_creds, {}) token.catalog.payload.must_equal ['catalog_data'] end it '#get_endpoint_url' do stub_request(:post, 'http://localhost/identity/v3/auth/tokens'). to_return( :status => 200, :body => JSON.dump(auth_response_v3("identity", "keystone")), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(authv3_creds, {}) token.catalog.get_endpoint_url(%w[identity], 'public', 'regionOne').must_equal 'http://localhost' end end end describe 'V2' do describe '#new' do it 'fails when missing credentials' do stub_request(:post, 'http://localhost/identity/v2.0/tokens'). to_return(:status => 200, :body => "{\"access\":{\"token\":{\"id\":\"token_data\"}}}", :headers => {}) proc do Fog::OpenStack::Auth::Token.build({}, {}) end.must_raise Fog::OpenStack::Auth::Token::URLError end describe 'using the password method' do it 'authenticates using the tenant name' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_username => 'user', :openstack_api_key => 'secret', :openstack_tenant => 'tenant', } stub_request(:post, 'http://localhost/identity/v2.0/tokens'). with(:body => "{\"auth\":{\"passwordCredentials\":{\"username\":\"user\",\"password\":\"secret\"},\ \"tenantName\":\"tenant\"}}"). to_return(:status => 200, :body => JSON.dump(auth_response_v2('identity', 'keystone')), :headers => {}) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal '4ae647d3a5294690a3c29bc658e17e26' end it 'authenticates using the tenant id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_username => 'user', :openstack_api_key => 'secret', :openstack_tenant_id => 'tenant_id', } stub_request(:post, 'http://localhost/identity/v2.0/tokens'). with(:body => "{\"auth\":{\"passwordCredentials\":{\"username\":\"user\",\"password\":\"secret\"},\ \"tenantId\":\"tenant_id\"}}"). to_return(:status => 200, :body => JSON.dump(auth_response_v2('identity', 'keystone')), :headers => {}) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal '4ae647d3a5294690a3c29bc658e17e26' end end describe 'using the token method' do it 'authenticates using the tenant name' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token_id', :openstack_tenant => 'tenant', } stub_request(:post, 'http://localhost/identity/v2.0/tokens'). with(:body => "{\"auth\":{\"token\":{\"id\":\"token_id\"},\"tenantName\":\"tenant\"}}"). to_return(:status => 200, :body => JSON.dump(auth_response_v2('identity', 'keystone')), :headers => {}) token = Fog::OpenStack::Auth::Token.build(auth, {}) token.get.must_equal '4ae647d3a5294690a3c29bc658e17e26' end it 'authenticates using the tenant id' do auth = { :openstack_auth_url => 'http://localhost/identity', :openstack_auth_token => 'token_id', :openstack_tenant_id => 'tenant_id', } stub_request(:post, 'http://localhost/identity/v2.0/tokens'). with(:body => "{\"auth\":{\"token\":{\"id\":\"token_id\"},\"tenantId\":\"tenant_id\"}}"). to_return(:status => 200, :body => JSON.dump(auth_response_v2('identity', 'keystone')), :headers => {}) Fog::OpenStack::Auth::Token.build(auth, {}) end end end describe 'when authenticated' do let(:authv2_creds) do { :openstack_auth_url => 'http://localhost/identity', :openstack_username => 'admin', :openstack_api_key => 'secret', :openstack_tenant => 'admin' } end describe '#get' do it 'when token has not expired' do stub_request(:post, 'http://localhost/identity/v2.0/tokens'). to_return( :status => 200, :body => "{\"access\":{\"token\":{\"id\":\"token_not_expired\"},\"serviceCatalog\":\ [\"catalog_data\"]}}", :headers => {} ) token = Fog::OpenStack::Auth::Token.build(authv2_creds, {}) token.stub :expired?, false do token.get.must_equal 'token_not_expired' end end it 'when token has expired' do stub_request(:post, 'http://localhost/identity/v2.0/tokens'). to_return( :status => 200, :body => "{\"access\":{\"token\":{\"id\":\"token_expired\"},\"serviceCatalog\":[\"catalog_data\"]}}", :headers => {} ) token = Fog::OpenStack::Auth::Token.build(authv2_creds, {}) token.stub :expired?, true do token.get.must_equal 'token_expired' end end end it '#catalog' do stub_request(:post, 'http://localhost/identity/v2.0/tokens'). to_return( :status => 200, :body => "{\"access\":{\"token\":{\"id\":\"token_data\"},\"serviceCatalog\":[\"catalog_data\"]}}", :headers => {} ) token = Fog::OpenStack::Auth::Token.build(authv2_creds, {}) token.catalog.payload.must_equal ['catalog_data'] end it '#get_endpoint_url' do stub_request(:post, 'http://localhost/identity/v2.0/tokens'). to_return( :status => 200, :body => JSON.dump(auth_response_v2('identity', 'keystone')), :headers => {'x-subject-token'=>'token_data'} ) token = Fog::OpenStack::Auth::Token.build(authv2_creds, {}) token.catalog.get_endpoint_url(%w[identity], 'public', 'regionOne').must_equal 'http://localhost' end end end end fog-openstack-1.1.5/unit/auth_helper.rb000066400000000000000000000054231476630434000200750ustar00rootroot00000000000000def auth_response_v3(type, name) { 'token' => { 'methods' => ['password'], 'roles' => [{ 'id' => 'id_roles', 'name' => 'admin' }], 'expires_at' => '2017-11-29T07:45:29.908554Z', 'project' => { 'domain' => { 'id' => 'default', 'name' => 'Default' }, 'id' => 'project_id', 'name' => 'admin' }, 'catalog' => [{ 'endpoints' => [ { 'region_id' => 'regionOne', 'url' => 'http://localhost', 'region' => 'regionOne', 'interface' => 'internal', 'id' => 'id_endpoint_internal' }, { 'region_id' => 'regionOne', 'url' => 'http://localhost', 'region' => 'regionOne', 'interface' => 'public', 'id' => 'id_endpoint_public' }, { 'region_id' => 'regionOne', 'url' => 'http://localhost', 'region' => 'regionOne', 'interface' => 'admin', 'id' => 'id_endpoint_admin' } ], 'type' => type, 'id' => 'id_endpoints', 'name' => name }], 'user' => { 'domain' => { 'id' => 'default', 'name' => 'Default' }, 'id' => 'id_user', 'name' => 'admin' }, 'audit_ids' => ['id_audits'], 'issued_at' => '2017-11-29T06:45:29.908578Z' } } end def auth_response_v2(type, name) { 'access' => { 'token' => { 'issued_at' => '2017-12-05T10:44:31.454741Z', 'expires' => '2017-12-05T11:44:31Z', 'id' => '4ae647d3a5294690a3c29bc658e17e26', 'tenant' => { 'description' => 'admin tenant', 'enabled' => true, 'id' => 'tenant_id', 'name' => 'admin' }, 'audit_ids' => ['Ye0Rq1HzTk2ggUAg8nDGbQ'] }, 'serviceCatalog' => [{ 'endpoints' => [{ 'adminURL' => 'http://localhost', 'region' => 'regionOne', 'internalURL' => 'http://localhost', 'id' => 'id_endpoints', 'publicURL' => 'http://localhost' }], 'endpoints_links' => [], 'type' => type, 'name' => name }], 'user' => { 'username' => 'admin', 'roles_links' => [], 'id' => 'user_id', 'roles' => [{ 'name' => 'admin' }], 'name' => 'admin' }, 'metadata' => { 'is_admin' => 0, 'roles' => ['role_id'] } } } end fog-openstack-1.1.5/unit/test_helper.rb000066400000000000000000000002001476630434000200770ustar00rootroot00000000000000require 'minitest/autorun' require 'webmock/minitest' require 'fog/core' require 'fog/json' require 'fog/openstack/auth/token'